dyamy-lee [Tue, 13 Feb 2024 01:34:11 +0000 (10:34 +0900)]
fix build error about snprintf
The output may be truncated before the last format character. So, it checked length before using snprintf
Change-Id: Iad722db28a5fd443df33988adbb4b755aa5afaa3
dyamy-lee [Wed, 7 Feb 2024 04:56:22 +0000 (13:56 +0900)]
used snprintf instead of strncat
Actually, getcwd() returns value when it doesn't have error case like sizeof() <= strlen().
However, using snprintf() looks more safe. So, it was changed.
Change-Id: Id091e366801cc98d80ce3c2281a40d0f954e234f
dyamy-lee [Wed, 7 Feb 2024 03:27:40 +0000 (12:27 +0900)]
added null check after calling strdup
If there is no enough memory, strdup() can return null because of out of memory.
For preventing it, this patch added null check
Change-Id: I346b57d6dc28c03aa50c34315b05520401150edc
dyamy-lee [Wed, 7 Feb 2024 02:18:21 +0000 (11:18 +0900)]
consider memory leak issue
There is no case about d_default_lang is not null.
However, it couldn't suere that if the function's logic is changed.
So, this added the free(0 for considering if d_default_lang is not null case
Change-Id: Ie4c650bcd062b3045f6ecc1ffe3e9eee26d0ff0a
sooyeon [Wed, 6 Dec 2023 02:31:01 +0000 (11:31 +0900)]
Update since_tizen in header files
Change-Id: Ibff82d907547295702a0b1167ca29f58bbd4eba5
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
Suyeon Hwang [Tue, 7 Nov 2023 09:00:57 +0000 (18:00 +0900)]
Update version (1.80.4)
Change-Id: Ia5a3bb7cd2edc9286b2ce726898aaffb1326331a
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 7 Nov 2023 08:57:35 +0000 (17:57 +0900)]
Except system volume from ducking
- Requirement:
In some uses cases, the system type audio stream should play.
- Solution:
This patch removes the code for ducking the system type volume. Through
this change, voice control no longer reduces the system type volume.
Change-Id: Ia1ec372b40301fbb8b683418943963d2266033be
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Wed, 6 Sep 2023 03:03:23 +0000 (12:03 +0900)]
Update version (1.80.3)
Change-Id: I13c7aa078b5985a1c0a0653899b7362d185f9b5e
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Mon, 28 Aug 2023 11:23:39 +0000 (20:23 +0900)]
Connect to widget client from server by on-demand
- Issue:
By the change of IPC to TIDL, app can receive unknown app launch
request.
- Solution:
This patch postpones the server-to-client connection. TIDL does not
support bi-directional call, so voice control widget client has stub
implementation for receiving some special message from the server.
However, this implementation causes unknown app launch requests for
connection.
Through this change, server will not connect to client immediately when
the client requests to connect. It will try to connect when it actually
needs to send some message to client.
Change-Id: Ie3f13e0a58d80a973715c4c86e71ffa14722de3e
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Thu, 3 Aug 2023 02:10:37 +0000 (11:10 +0900)]
Update version (1.80.2)
Change-Id: I4525a0a5222338f3e15717559a0c4a4da1611fb7
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 18 Jul 2023 08:54:13 +0000 (17:54 +0900)]
Fix typo in function and variable names
Change-Id: I7a1c67d688c0903064ccb539e72477a4205b9b04
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 18 Jul 2023 06:09:59 +0000 (15:09 +0900)]
Remove unused or unreachable code
- Contents:
This patch removes some unused or unrechable code. Through this patch,
unvaluable code is removed and also test cases covers more code and
logics.
Change-Id: I1fe9c3e17303740b8793d56def022b26b4acb110
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 18 Jul 2023 06:02:48 +0000 (15:02 +0900)]
Add new test cases to increse the coverage
- Contents:
This patch adds new test cases for uncovered line. Through this patch,
developers can check the behavior about specific situations.
Change-Id: I192b38e190f4b59991c06d2865df0b37b4a8914b
Suyeon Hwang [Thu, 13 Jul 2023 09:04:44 +0000 (18:04 +0900)]
Refactor unit tests with utility class
- Contents:
This patch fixes all unit tests using new utility class from previous
commit. Through this change, many duplicated codes in test cases can be
removed.
Change-Id: I2a81b9de530f12a20b789755768f6b8da79eca98
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Thu, 13 Jul 2023 07:58:01 +0000 (16:58 +0900)]
Add test utility classes
- Contents:
This patch introduces new utility classes for test case. Through these
classes, developers can easily make the test cases. These new classes
provide many useful utility methods and frequently used code blocks.
Change-Id: I955ac4f97fc790baa7bbfa796b2fc63e570ea3c2
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Wonnam Jang [Fri, 14 Jul 2023 09:05:35 +0000 (09:05 +0000)]
Merge "Update version (1.80.1)" into tizen
wn.jang [Fri, 14 Jul 2023 08:45:21 +0000 (17:45 +0900)]
Update version (1.80.1)
Change-Id: I1d56e60454416c469f59036c3693f316172ac9f6
wn.jang [Fri, 14 Jul 2023 04:01:54 +0000 (13:01 +0900)]
Fix build error on gcc-13 Build
Change-Id: I43bd5da223ca1703e39e4c3e033f76d81680a4a7
Suyeon Hwang [Tue, 11 Jul 2023 05:31:48 +0000 (14:31 +0900)]
Use macro for length of file path
Change-Id: I5352069100e10540f69cb763a88a560013644920
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 11 Jul 2023 02:32:03 +0000 (11:32 +0900)]
Use static memory for DB file path
- Issue:
In some code, g_path and g_backup_path can be deallocated even if it
would be referenced.
- Solution:
g_path and g_backup_path should not be allocated the memory dynamically
because the life cycle of those variables are the same as the program.
So this patch changes the variables to use static memory. Through this
patch, unintended memory deallocation will be removed.
Change-Id: Idc64bc76e4cfc884770d83576923d2670e61c364
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
wchang kim [Mon, 3 Jul 2023 02:04:31 +0000 (11:04 +0900)]
Fixed the build error using gcc 13
Change-Id: Id8c09ebc0a4285324995a8da81a84decc5eeea33
Wonnam Jang [Fri, 2 Jun 2023 07:32:54 +0000 (07:32 +0000)]
Merge "Update version (1.80.0)" into tizen
wn.jang [Fri, 2 Jun 2023 06:10:13 +0000 (15:10 +0900)]
Update version (1.80.0)
Change-Id: I5bf750f7e6ea306efdb20e0cc862c6d8ad7912fd
wn.jang [Fri, 2 Jun 2023 05:40:55 +0000 (14:40 +0900)]
Add binary file to support risc64 build
Change-Id: Iad7eac216720939db6021ee811a816c1da1523fa
Suyeon Hwang [Mon, 10 Apr 2023 09:15:26 +0000 (18:15 +0900)]
Update version (1.75.7)
Change-Id: Ie17ce050df7d9ee9ecda449c762da92bb9cf6705
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 11 Apr 2023 04:40:32 +0000 (13:40 +0900)]
Register fd handler when the client only sets the lang_cb
- Issue:
Language changes callback is not invoked except by the setting client.
- Solution:
Previous code does not register inotify fd handler when the clients only
set langauge changed callback. The callback needs fd handler
registeration because the callback is called by fd handler. So this
patch adds code to register the fd handler. Through this patch, the
language changd callback will be invoked even if the client is not the
setting client.
Change-Id: I503a5097f7727721292974bd1dc2919401e17593
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Mon, 10 Apr 2023 09:06:35 +0000 (18:06 +0900)]
Add timer for callbacks in main loop
- Issue:
When the app calls setting API in sub-thread, the changed callback can
not be invoked properly.
- Solution:
Most ecore API function properly works in main loop, and
ecore_timer_add() is also a functions of this kind. Therefore, if the app
calls setting API function in sub-thread, the changed event callbacks
can not be invoked. To solve this issue, this patch changes the ecore
timer registration logic. Through this patch, every timer will be added
in main loop by ecore_main_loop_thread_safe_call_sync().
Change-Id: I8ce976cf2b86b1c2a309ea887f17f1641b9e3f01
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Fri, 7 Apr 2023 12:20:36 +0000 (21:20 +0900)]
Update version (1.75.6)
Change-Id: I6c8ceefed4d5b35c5c8178aea80f77cf3bf3413a
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Fri, 7 Apr 2023 11:42:08 +0000 (20:42 +0900)]
Use ecore timer for config changed callbacks
Change-Id: I489807ea63d7d16529bcaf7ffa563b45c2635f56
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Fri, 7 Apr 2023 09:16:04 +0000 (18:16 +0900)]
Update version (1.75.5)
Change-Id: I2c5592f9bebc39379ce7e1c6d54235b74d7b3feb
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Fri, 7 Apr 2023 09:09:12 +0000 (18:09 +0900)]
Invoke config changed callback directly
- Issue:
If the app changes the config using setting API, the framework did not
invoke config changed callbacks.
- Solution:
In previous code, vc_config_mgr module could know the changes of the
configuration through checking the difference between the values in the
memory and actual configuration file. However, the values in the memory
and configuration file are the same if the app uses the setting API.
This is beecause the setting API sets the value in both the memory and
file.
So, this patch adds a new logic for invoking the callbacks. Through this
patch, vc_config_mgr module will directly invoke the callbacks related
to changed values when the app changes the configuration using setting
API.
Change-Id: Ic8023395889021501d8528401f9058b743699c72
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Fri, 7 Apr 2023 08:31:36 +0000 (17:31 +0900)]
Invoke changed callbacks using ecore idler
- Requirements:
Each callbacks should not prevent main loop for a long time.
- Contents:
This patch fixes the logic of changed callback invocation. Through this
patch, each callbacks will be invoked by ecore idler. This makes the
code blocks the main loop for reasonable time. And this makes each
callbacks behavior become asynchronous.
Change-Id: I482e5168f3f9ff44398b5b7d067a68f37e511fd0
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Thu, 6 Apr 2023 05:09:29 +0000 (14:09 +0900)]
Rearrange the scope of each temporary variables
This patch is for solving static analysis issues.
Through this patch, the scope of each temporary variables will become as
smaller as they can. This change can reduce the possibility of mistakes
such as accessing invalid pointer.
Change-Id: I93aaef1711ddc27663812fd0c089c9be4c277f23
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 4 Apr 2023 09:24:07 +0000 (18:24 +0900)]
Update version (1.75.4)
Change-Id: Ibd6321eb00b938a8811e031bee00469c62e3a85d
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 4 Apr 2023 09:16:17 +0000 (18:16 +0900)]
Unregister TIDL stub port when connection is closed
- Issue:
Connected event callback is invoked even though the connection is
closed.
- Solution:
Previous code does not invoke unregister method of TIDL stub, so the
connection callback still can be invoked even if the client
succeeds to deinitialize. And this is no intended behavior, so this
patch fixes this behaivor. Through this patch, widget module will
properly call unregister method. And also, widget module will check
first if the stub information is valid.
Change-Id: I1864824237218468b5341eb32c23c17e9f278651
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
ulgal-park [Tue, 14 Mar 2023 12:26:44 +0000 (21:26 +0900)]
Update version to 1.75.3
Change-Id: Ide3c6b0833559c11759c1afccb3a846eaba642f1
ulgal-park [Tue, 14 Mar 2023 12:19:13 +0000 (21:19 +0900)]
add guard clause when use tidl info
Change-Id: If1b530d30def44840a7f56238bab420bcc65f5fd
sooyeon [Tue, 14 Mar 2023 06:06:56 +0000 (15:06 +0900)]
Update version (1.75.2)
Change-Id: I6ab67a569f0ebf740037bb74aaf6d1075fd3a9f0
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
sooyeon [Tue, 14 Mar 2023 05:50:47 +0000 (14:50 +0900)]
Fix Svace issues by removing unused codes
Change-Id: I4b6d194faacd074305ab7a6968c715e94d0994ba
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
ulgal-park [Mon, 13 Mar 2023 03:54:48 +0000 (12:54 +0900)]
Update version to 1.75.1
Change-Id: Id348d0e8a8c010910bd274f455133c499906f48b
ulgal-park [Mon, 13 Mar 2023 03:54:05 +0000 (12:54 +0900)]
add guard clause when use g_VoiceControlClients
Change-Id: I36d7c0cccd8cee52a6948cbcf3af873e3ae950b9
ulgal-park [Fri, 10 Mar 2023 10:14:30 +0000 (19:14 +0900)]
Change widget retry count and interval when engine not loaded
Change-Id: Ia7b97d900f18dad2bec2d2e08864ba77af5d657d
wn.jang [Thu, 9 Mar 2023 01:58:39 +0000 (10:58 +0900)]
Update version to 1.75.0
Change-Id: I32a641064bbce6011c536225ebb92105023a9a7d
Suyeon Hwang [Thu, 19 Jan 2023 10:23:10 +0000 (19:23 +0900)]
Fix coding convention about member variables and static functions
- Issue:
Using two underscores(__) as name of variables or functions is
reserved by C and CPP compilers, so it may occur name colision.
- Solution:
Previously, most of the code followed old tizen coding convention.
However, in case of name, the convention conflicts with C and CPP
standard, because two underscore is already reserved as an identifier by
C and CPP standard. Thus, using two underscores may cause some problems.
To resolve this collision, this patch fixes the name of member variables
and static functions to match C and CPP standard. Through this patch,
CPP files in the project do not use two underscore as name of variables
and functions anymore.
Change-Id: I2309c0c1d7bdb37a3b55f996d1d0372dc39dd856
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Mon, 2 Jan 2023 08:02:03 +0000 (17:02 +0900)]
Remove unused header file including
Change-Id: Id9f560ec1214bae1979205970cac31cd7e2ea3d1
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Mon, 2 Jan 2023 07:47:46 +0000 (16:47 +0900)]
Make inline function for logging
- Issue:
For printing log, enum value is used as boolean.
- Solution:
This patch makes converting function for removing invalid usage of enum
value as boolean. Through this patch, the new function will safely
converts the enum value to string.
Change-Id: I0ee373dd86e044933225728e7e970119b5fb5cce
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Mon, 2 Jan 2023 05:51:55 +0000 (14:51 +0900)]
Fix format string and data types
- Issue:
Some format string and data types are not matched to the size of those
values.
- Solution:
This patch fixes the format string and data types for handling the size
of the value. And also this patch removes data copy in iterating
vector lists using reference type.
Change-Id: I3076c3ff9899b44469267a78bd7a8562aa4ee104
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Thu, 8 Dec 2022 07:57:47 +0000 (16:57 +0900)]
Cleanup vc_config_mgr
Change-Id: Ic8723697a0ec4a408c3778b17e1d78c7c8260e1e
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Wed, 7 Dec 2022 04:38:48 +0000 (13:38 +0900)]
Remove unused mutex vc_config_mgr_mutex
- Requirement:
vc_config_mgr_mutex is not valuable to assure thread safety.
- Content:
Through previous patches, all important global variable has their own
mutex for thread safety. Thus, vc_config_mgr_mutex is not needed
anymore. Therefore, this patch removes vc_config_mgr_mutex from the
module.
Change-Id: Icaac3b07f5f8a378f4c5f236746fe31d5be27175
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Wed, 7 Dec 2022 02:21:09 +0000 (11:21 +0900)]
Make class for managing g_config_client_list
- Requirement:
g_config_client_list is shared memory, so thread safe access for
g_config_client_list is needed.
- Contents:
This patch makes new classes for accessing list of vc_config_client_s
instance. Through this patch, all other functions in this module can
access list of client information in a thread safe way using new class
instance introduced by this patch.
This new class will protect each client information element using mutex,
so the class will assure to prevent race condition.
Change-Id: I2426df83bd763ee3a96334cc64b4b93f6e06a760
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 6 Dec 2022 07:35:41 +0000 (16:35 +0900)]
Make class for managing list of vc_engine_info_s
- Requirement:
g_engine_list is shared memory, so thread safe access for g_engine_list
is needed.
- Contents:
This patch makes new classes for accessing list of vc_engine_info_s
instances. Through this patch, all other functions in this module can
access list of vc_engine_info_s instances in a thread safe way using new
class iinstance introduced by this patch.
This new class will protect each engine information element using mutex,
so the class will assure to prevent race condition.
Change-Id: I455a5effb5076119be220936fd26a27143e72081
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Thu, 1 Dec 2022 09:54:49 +0000 (18:54 +0900)]
Make class for managing vc_config_s instance
- Requirement:
g_config_info is shared memory, so thread safe access for g_config_info
is needed.
- Contents:
This patch makes new class for accessing vc_config_s instance. Through
this patch, all other functions in this module can access configuration
property in a thread safe way using method of new class.
This new class will protect vc_config_s property using mutex, so the
class will assure to prevent race condition.
Change-Id: Ifdf2c37874f9dfe53cc6f645149ec28036f8c0d2
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Thu, 1 Dec 2022 04:46:19 +0000 (13:46 +0900)]
Refactor logic for initialzing vc_config_mgr
- Issue:
The code in vc_config_mgr_initialize() has high complexity, and other
function has to use indirect method to check whether the module is
initialized.
- Solution:
This patch refactors the vc_config_mgr_initalize() function. Through
this patch, duplicated code in vc_config_mgr_initialize() is removed,
and also the new flag which shows whether the module is initialized is
introduced. The functions in this module will be able to check the
initialization of the module using this new flag.
Change-Id: I6579c3274dbe5ea93fdf6c5bb990f7a98ea0ffae
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 29 Nov 2022 11:02:00 +0000 (20:02 +0900)]
Make critical section for g_ino_list using std::mutex
- Requirement:
Simpler code for making critical section is needed to increase
readbility.
- Content:
This patch changes the critical section tool from pthread_mutex to CPP
standard library mutext. Through this patch, we can easily handle the
critical section of g_ino_list.
Change-Id: I1bb59561ed2ea86bf0db8b38718abdf6716e2987
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 29 Nov 2022 08:33:03 +0000 (17:33 +0900)]
Change file format from c to cpp
- Requirement:
It is hard to assure thread safe in C based code.
- Solution:
This patch changes the file format of vc_config_mgr from c to cpp.
Through this patch, refactoring vc_config_mgr will become easier.
Change-Id: I0cf1c672daf74daa97d759564f2610a0074ff127
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 29 Nov 2022 07:53:30 +0000 (16:53 +0900)]
Make function for duplicated logic
- Issue:
Some code logics are used repeatedly.
- Solution:
This patch makes functions for these logics. Through this patch,
duplicated logics are removed from vc_config_mgr module.
Change-Id: Ic923b0aa52b93ca2286aa80d386ca77b295a7aaf
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Mon, 26 Dec 2022 10:33:58 +0000 (19:33 +0900)]
Add missing retval description
Change-Id: I07c29110d4266aa0b4cdfd319bcf514cd2106803
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
dyamy-lee [Wed, 7 Dec 2022 12:02:18 +0000 (21:02 +0900)]
change privilege about vc_tts APIs
vc_tts APIs need to check voicecontrol.tts privilege.
So, add checking function about voicecontrol.tts privilege and use this in vc_tts APIs.
For vc_tts APIs, these don't need to check microphone, speech.control, recorder.
So, no check thoses privilege
Change-Id: I5d7ed88d6c2921063f7dddb7037c56bf2f814190
dyamy-lee [Wed, 7 Dec 2022 11:01:18 +0000 (20:01 +0900)]
add vc_tts api unittest
- add new TCs(positive, nagative) for vc_tts_request
- add new TCs(positive, nagative) for vc_tts_cancel
- add another nagative case for vc_tts_set_streaming_cb
- add another nagative case for vc_tts_set_utterance_status_cb
Change-Id: I4385c561cae122e063c749bb72db638d9142cf76
Suyeon Hwang [Thu, 15 Dec 2022 06:55:30 +0000 (15:55 +0900)]
Add parameter check code
- Issue:
Some APIs describe that the API can return invalid parameter error, but
these APIs did not return invalid parameter error.
- Solution:
This patch adds parameter check code. Through this patch, some APIs will
return invalid parameter error if the parameter is not valid.
Change-Id: I1b6e24c31fc0c2aeeeb0930597d4e1069e33677b
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 13 Dec 2022 02:15:16 +0000 (11:15 +0900)]
Fix description of voice control APIs
- Issue:
Some description for APIs does not explain exact behavior of each APIs.
- Solution:
This patch fixes the description of these APIs:
- vc_set_invocation_name()
- vc_set_server_dialog()
- vc_unset_server_dialog()
- vc_request_dialog()
- vc_get_result()
- vc_unset_result_cb()
- vc_tts_set_utterance_status_cb()
- vc_mgr_specific_engine_result_cb()
- vc_mgr_get_current_commands()
- vc_mgr_set_selected_results()
- vc_mgr_set_all_result_cb()
- vc_mgr_get_error_message()
The description of these APIs did not explain exact behavior of each
APIs.
And also, this patch fixes the order of retval to follow doxygen guide.
Change-Id: I4e1f0ab1db7cb4ecd7422315a7714f053aaf7d89
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Fri, 18 Nov 2022 08:42:56 +0000 (17:42 +0900)]
Fix API behavior to match the specification
- Issue:
Some APIs did not work as specified on API's documentation.
- Solution:
This patch adds logic for checking state and parameter and also fix some
function to work as specifedd on API's documentation. Through this
patch, the APIs will properly and expectedly work.
Change-Id: I8a4c0a36806ebfa562d18da13e3673bb776dd4da
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 22 Nov 2022 09:04:08 +0000 (18:04 +0900)]
Rearrange coverage excluding scope
- Contents:
This patch fixes the comment for excluding line coverage checker.
Through this code, the code which is not covered by unit test is
excluded from line coverage checking.
Change-Id: Ib7f5b4a683e3f5bd10752d1fd0982e6cd917ad17
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Fri, 18 Nov 2022 08:34:19 +0000 (17:34 +0900)]
Add unit test cases for enhancing line coverage
- Issue:
Line coverage of unit test is too low.
- Solution:
This patch adds new test cases to cover uncovered logics in voice
control client library. Through this patch, the line coverage of unit
test will be bigger.
Change-Id: Ida10976a7bd7bb06c6378d367dfec8df06ecf953
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Thu, 17 Nov 2022 06:21:36 +0000 (15:21 +0900)]
Simplify the setup and teardown logic of tests
- Requirements:
The setup and teardown method is too complicated to change.
- Contents:
This patch simplifies the setup and teardown method for future
refactoring and adding new TCs.
Change-Id: I706e7f0fcf5b50f86546ae0c63aa8e27ff491180
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 15 Nov 2022 12:11:57 +0000 (21:11 +0900)]
Connect synchronously when app uses setting API
- Issue:
The setting API did not connect to vc server.
- Solution:
When setting API is invoked, the setting library invokes request hello
function only once. However, the request hello function uses
asynchronous connect and setting library did not waiting it. Thus,
setting API always fails to connect to vc server.
This patch changes connection function to synchronous one. Through this
patch, setting API can connect vc server properly.
Change-Id: I961dd545d2e92f0a4d644742e8b747086bd00e75
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Mon, 14 Nov 2022 12:07:00 +0000 (21:07 +0900)]
Add test case for checking callback invocation
- Issue:
There is no test case for checking whether the callbacks which are set
by manager is invoked.
- Solution:
The voice control framework provides manager API for sending pcm data as
recording data. Using this APIs, we can simulate the situation that the
user says something. Thus, we can make new test case in this situation.
And also, using app manager framework, we can make situation that the
engine is suddenly terminate.
Using these simulation, this patch creates new test cases for checking
whether the callback is invoked. Through this patch, developer can check
some callbacks are properly invoked in proper situation.
Change-Id: I42d4167c1d6dc33b67858e309264a542032f5f3e
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Tue, 22 Nov 2022 11:43:00 +0000 (20:43 +0900)]
Revert vc_mgr_set_selected_result() execution condition
- Issue:
vc_mgr_set_selected_result() should be able to invoked if
vc_mgr_all_result_cb() returns false.
- Solution:
Previous commit changes the execution condition of
vc_mgr_set_selected_result() to be invoked only in
vc_mgr_all_result_cb(). However, according to the description of
vc_mgr_all_result_cb(), vc_mgr_set_selected_result() should be able to
be invoked if vc_mgr_all_result_cb() returns false. Thus, this patch
reverts the condition of vc_mgr_set_selected_result() and fixes the
description of vc_mgr_set_selected_result().
Change-Id: I330a150187698f8179a62956b32a8092986397b4
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Mon, 14 Nov 2022 02:57:54 +0000 (11:57 +0900)]
Fix errors which are created by solving merge conflict
- Issue:
Some changes from previous commits are disappeared.
- Solution:
This patch rollbacks the some codes that disappeares by solving merge
conflict. And also this patch fixes bug that are not return error.
Change-Id: I81968cfa7cedc84aeb6d28e0f041cfe45d7190d1
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
ulgal-park [Fri, 4 Nov 2022 06:15:31 +0000 (15:15 +0900)]
Add core layer to remove extern dependency at vc_mgr_tidl
Change-Id: Iba2ad7072b8f3f79080c6e979b60e0c39d2dc060
Suyeon Hwang [Thu, 10 Nov 2022 09:40:31 +0000 (18:40 +0900)]
Add state and parameter check logic
- Issue:
Some APIs are not follow its documentation.
- Solution:
This patch adds state and parameter check logic to make each APIs
follows its documentation. Some APIs did not make error even if the API
is invoked in error situation. Through this patch, each APIs will make
error in some condition specified by documentation.
Change-Id: Ie9c92d012e8891a168a990d5e47559add0d03e49
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Thu, 10 Nov 2022 09:00:21 +0000 (18:00 +0900)]
Add cancel callback feedback thread
- Issue:
Sometimes, ecore_thread_cancel() is blocked in vc_mgr_stop_feedback().
- Solution:
In vc_mgr_stop_feedback(), ecore_thread_cancel() is used, but the cancel
callback is not set. Thus, this patch adds cancel callback and makes the
callback reset the thread variable. Through this patch, the thread
variable will be safely reset.
Change-Id: I926c52aec385b07da65dbf1f6b363eeec328acdd
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Thu, 10 Nov 2022 08:45:23 +0000 (17:45 +0900)]
Add unit test cases for internal APIs and missed APIs
- Issue:
There are some APIs those have no related TCs.
- Solution:
This patch adds new TCs for APIs those have no related TCs. Through this
patch, developer can validate all voice control manager APIs.
And also, this patch unifies the indetation to use tab.
Change-Id: I73fe6bdb0ddbf3e406b3ead170b9e770ce4670a8
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Wed, 9 Nov 2022 04:34:51 +0000 (13:34 +0900)]
Reset g_mgr_client when client is destroyed
- Issue:
App can access g_mgr_client even if vc mgr was deinitialized.
- Solution:
VC mgr client module did not assign null in g_mgr_client when
vc_mgr_client_destroy() is invoked. Thus, app still can access the
dereferenced pointer in g_mgr_client after calling
vc_mgr_deinitialized(). This patch sets null in g_mgr_client when app
invokes the vc_mgr_deinitialize(). Through this patch, the client
structure of vc mgr is properly reset.
Change-Id: I8c20e70960607257fa5e80b961c610b5aaf51f9a
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Mon, 7 Nov 2022 10:42:05 +0000 (19:42 +0900)]
Add unit tests for VC manager APIs
- Requirements:
VC manager APIs need to get test case for validation when it has to be
changed.
- Contents:
This patch adds new unit test cases for VC manager APIs. VC manager
provides only for platform certificated APIs, so it does not need to UTC
or ITC for release process. Thus, those APIs are not validated by any
test now. Through this patch, developers can validate the APIs if they
want it.
Change-Id: Iaffd992010954e330f6a0312e553e9ad04543108
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Mon, 7 Nov 2022 10:55:23 +0000 (19:55 +0900)]
Stop feedback thread only when stop is requested
- Issue:
Sometimes, the feedback thread plays the TTS feedback data for previous
request.
- Solution:
The issue is because feedback thread is exited before the engine
finishing to send TTS feedback data. Thus, some data can be remained in
feedback data queue even if thread is terminated.
This patch fixes termination logic for TTS feedback thread. Through this
patch, TTS feedback thread is terminated only when stop is requested,
and TTS feedback thread tries to consume all feedback data.
Change-Id: I8deaaab5f6b3e44e86b62d1ec3d8735e30a54780
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
ulgal-park [Fri, 4 Nov 2022 03:51:47 +0000 (12:51 +0900)]
Remove vc manager handle in vc_mgr and vc_mgr_client
Change-Id: Ie30d4b328f0e22f57d59c9c8dfdbe601fbbe34a2
wn.jang [Fri, 4 Nov 2022 04:01:17 +0000 (13:01 +0900)]
Update version to 1.70.8
Change-Id: I2bc49f92717d5515ab7d776115525a41d9b8f9ed
Suyeon Hwang [Thu, 3 Nov 2022 05:42:45 +0000 (05:42 +0000)]
Merge changes I2d2676d0,Iffc7acb7,Ibe373fd5 into tizen
* changes:
Deallocate memory before setting new value
Deallocate the list memory after using it
Use setter to set invocation name safely
Suyeon Hwang [Mon, 31 Oct 2022 06:46:54 +0000 (15:46 +0900)]
Deallocate memory before setting new value
- Issue:
Memory leak can be possible if vc_cmd_db module sets the new value in
vc_cmd_s structure.
- Solution:
The possibility of the issue is because the module did not check the
preivous value of the member. Thus, this patch adds code for checking
the member of the structure. If there is already value set, the module
will release the old value and then set new value.
Change-Id: I2d2676d08a4cacb75c32983c1a49eced28371b65
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Mon, 31 Oct 2022 06:12:28 +0000 (15:12 +0900)]
Deallocate the list memory after using it
- Issue:
Command list was note deallocated after using it.
- Solution:
vc_cmd_db module creates the command list for update commands DB, but
after using it, the module did not deallocate the list. It can occur
memory leak. Thus, this patch adds code for deallocating the list.
Change-Id: Iffc7acb78aa577fdd56a27efd1abdc2a802d05eb
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
Suyeon Hwang [Fri, 28 Oct 2022 06:24:43 +0000 (15:24 +0900)]
Use setter to set invocation name safely
- Issue:
The invocation name previously set can be leaked.
- Solution:
The invocation name parameter is set by __vc_db_insert_commands_list()
without checking invocation itself. In most cases, invocation name is
not set by this function, but in special cases, memory leak can
occurred if use repeatedely set command list.
Thus, this patch prevents leak using setter function. The setter
function checks the invocation name paraemeter and safely changes it.
Change-Id: Ibe373fd51d5c2880ccea1d2b6699cd5614ffe49c
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
wn.jang [Thu, 13 Oct 2022 02:16:23 +0000 (11:16 +0900)]
Fix stack-buffer-overflow issue which is detected by ASAN
Cause: A buffer overflow occurs because 4 bytes access occurs
when the value is changeed as it is converted to (int*)
even though it is set as 1 byte pool variable.
Soluetion: Use bool* instead of int* is_system_cmd_valid.
This issue is described on code.sec.samsung.net/jira/browse/TSEVEN-2604
Change-Id: I4d8dae44234d4879b99c75296244018b45e85e69
wn.jang [Wed, 5 Oct 2022 00:46:53 +0000 (09:46 +0900)]
Update version to 1.70.7
Change-Id: I1f90e77141b0d188275521e2f66c466bfbd78a66
wn.jang [Tue, 4 Oct 2022 12:00:37 +0000 (21:00 +0900)]
Check if tidl_info is NULL before use when vc mgr app is terminated
Change-Id: I43a3c753eabb0ccb308545c47fbe3beaf0fc8114
sooyeon [Fri, 30 Sep 2022 02:02:36 +0000 (11:02 +0900)]
Fix coverity issues
Change-Id: Ica79c8c2c2804e9f11e45480914726085637eff7
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
sooyeon [Thu, 22 Sep 2022 07:38:35 +0000 (16:38 +0900)]
Add NOT_SUPPORTED error description in the header
Change-Id: I5f43440efbcf00e7ec6503a345b0a5a86b36f2c0
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
sooyeon [Thu, 22 Sep 2022 04:46:47 +0000 (13:46 +0900)]
Add permission denied error and descriptions
Change-Id: Iaf1b54300feb01f789cac0af799982a3d6492a3b
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
sooyeon [Thu, 22 Sep 2022 01:29:22 +0000 (10:29 +0900)]
Add remarks for additional privileges
Change-Id: I3ce6765012901624f928e0c86c80a0248d0e6dea
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
sooyeon [Mon, 8 Aug 2022 05:03:41 +0000 (14:03 +0900)]
Add and Rearrange descriptions
Change-Id: I78f52786dbcb48d34b56ffd41ba47c41a7a6316c
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
sooyeon [Mon, 8 Aug 2022 02:44:01 +0000 (11:44 +0900)]
Add TIDL privileges in vce header description
Change-Id: Ic689323869a141bcc21d51fa695cae1e0b63574d
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
wn.jang [Wed, 28 Sep 2022 04:14:37 +0000 (13:14 +0900)]
Update version to 1.70.6
Change-Id: I10ed1ade43238e73c857acf21251d238f1412557
wn.jang [Wed, 28 Sep 2022 04:13:31 +0000 (13:13 +0900)]
Add usleep while waiting for releasing callback function
Change-Id: I3516ec0834dda1eb4d9d8af2e993671e9a89dda8
wn.jang [Wed, 28 Sep 2022 00:55:08 +0000 (09:55 +0900)]
Retry when prepare_sync is failed
Change-Id: I9a96cd1254fefd746a76e6f8bb1fe2bba255293e
wn.jang [Fri, 23 Sep 2022 07:50:49 +0000 (16:50 +0900)]
Add logic to avoid reconnetion when finalize
Cause: The on_disconnect() cb is called, even a client requtests to disconnect.
Change-Id: I463ad1321968cc86b775125b220dfc8f1ce8b9b3
Solution: Check whether ipc listening state or not when tries to reconnect.
wn.jang [Tue, 20 Sep 2022 23:46:22 +0000 (08:46 +0900)]
Add prepare_sync function to connect directly
Cause: The Web TCs were blocked and failed.
Change-Id: I5b64a3f281b59191d8c41fc60a44eacdcdd5edb3
Solution: Connect directly when web api request to prepare
wn.jang [Tue, 20 Sep 2022 11:46:23 +0000 (20:46 +0900)]
Add to disconnect rpc socket when client is finalized
Cause: __on_disconnection is called when engine is terminated due to no more clients.
Change-Id: If3cfaa9c35ce8477e3c08e7d12c211d49e622c42
Solution: To avoid reconnect by service reset, disconnect rpc socket when client is finalized.
sooyeon [Tue, 6 Sep 2022 01:52:24 +0000 (10:52 +0900)]
Fix coverity issues
Change-Id: I3db738f369e0a7a36f09e73ca1f9740a79f1b8ef
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
Seongmin Park [Fri, 26 Aug 2022 04:23:46 +0000 (04:23 +0000)]
Merge "fix issue that voice control client can not get service state update" into tizen
Seongmin Park [Fri, 26 Aug 2022 04:23:38 +0000 (04:23 +0000)]
Merge "send error to client when server disconnected" into tizen