platform/core/uifw/tts.git
8 days agoUpdate version (1.70.30) 43/325243/1 accepted/tizen_7.0_unified tizen_7.0 accepted/tizen/7.0/unified/20250610.091116
VBS [Thu, 5 Jun 2025 06:41:50 +0000 (15:41 +0900)]
Update version (1.70.30)

Change-Id: I48f623ab1ae143dd9414b3e2e44435eda68a16e8
Signed-off-by: VBS <sooyeon.kim@samsung.com>
9 days agoManage the state of AudioStream and Change the condition to call unprepareAudioOut 17/325217/1
VBS [Wed, 4 Jun 2025 13:11:37 +0000 (22:11 +0900)]
Manage the state of AudioStream and Change the condition to call unprepareAudioOut

Change-Id: Ia7a06cf05c6d892d4b8c8ca5d281f989b2fb6d41
Signed-off-by: VBS <sooyeon.kim@samsung.com>
2 months agoFix coverity issue (check return value) 79/321479/1 accepted/tizen/7.0/unified/20250324.150516
VBS [Mon, 24 Mar 2025 00:54:57 +0000 (09:54 +0900)]
Fix coverity issue (check return value)

Change-Id: I2e423dcce83aa2de7f1c020e0c37a560709cdadf
Signed-off-by: VBS <sooyeon.kim@samsung.com>
14 months agoUpdate version (1.70.29) 41/309341/1 accepted/tizen/7.0/unified/20240409.104418
sooyeon [Tue, 9 Apr 2024 01:51:31 +0000 (10:51 +0900)]
Update version (1.70.29)

Change-Id: I2689125a0c1011723b512b799075c5c801e4b334
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
14 months agoGet client state whether it is paused or not 37/309337/1
sooyeon [Tue, 9 Apr 2024 01:06:28 +0000 (10:06 +0900)]
Get client state whether it is paused or not

- Issue:
Although playing TTS is paused, when this is resumed to play, it is not played from the stopped moment.
The changed state is not checked inside the player thread.

- Solution:
By getting the client state again inside the player thread, the sound data which is playing is saved.

Change-Id: I533ddf5f4e3fd23ab847ba3fa89757be2f36ce8d
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
14 months agoUpdate version (1.70.28) 65/309065/1 accepted/tizen/7.0/unified/20240405.012350
sooyeon [Thu, 4 Apr 2024 08:19:30 +0000 (17:19 +0900)]
Update version (1.70.28)

Change-Id: I65d9f3fe0814e71b093983f1f46a489a85764cf2
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
14 months agoPause default mode's tts playing when sound focus is released 33/308733/3
sooyeon [Fri, 29 Mar 2024 08:33:48 +0000 (17:33 +0900)]
Pause default mode's tts playing when sound focus is released

- Issue:
In Tizen 7.0 FHub, TTS sound and ringtone are mixed, because TTS is not paused, although the sound focus is released.

- Solution:
Add a logic to pause tts playing when the sound focus is released in default mode.

Change-Id: Icd4615bf9af8c56197b7bf43df2cbab9284620a3
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
15 months agoUpdate version (1.70.27) 34/307834/1 accepted/tizen/7.0/unified/20240315.012948
sooyeon [Wed, 13 Mar 2024 12:02:40 +0000 (21:02 +0900)]
Update version (1.70.27)

Change-Id: I31e1f1f68ba7db5bbfa146c6b848a25ed44eb44d
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
15 months agoSet sound stream info regardless of TTS mode 15/307815/2
sooyeon [Wed, 13 Mar 2024 09:29:03 +0000 (18:29 +0900)]
Set sound stream info regardless of TTS mode

- Issue:
In Tizen 7.0 FHub, there is a case that TTS sound volume becomes low.
When the sound focus is not acquired, the sound stream info is not set, either.

- Solution:
Regardless of TTS mode, we made the sound stream info set.

Change-Id: I5a8cfbcc65dafc8e7f3c0e9b39000e0686330de4
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
15 months agoUpdate version (1.70.26) 88/307388/1 accepted/tizen/7.0/unified/20240308.120322
sooyeon [Fri, 8 Mar 2024 02:25:41 +0000 (11:25 +0900)]
Update version (1.70.26)

Change-Id: I293e55cd74933d235128cd88ed55ea9e4ddd0479
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
15 months agoMake not to acquire sound focus when screen reader and notification modes 01/307301/2 accepted/tizen/7.0/unified/20240308.081104
sooyeon [Thu, 7 Mar 2024 03:11:29 +0000 (12:11 +0900)]
Make not to acquire sound focus when screen reader and notification modes

- Issue:
In Tizen 7.0 FHub, media-type playing is stopped, because TTS screen-reader mode acquires a sound focus.

- Solution:
Rollback to the previous TTS sound focus policy.
* Default / Interrupt modes: acquire sound focus
* Screen-reader / Notification modes: NOT acquire sound focus

Change-Id: I5c09970aa15f3e1694e1ca2e95f2ddcf2529e203
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
17 months agoUpdate version (1.70.25) 85/304085/1 accepted/tizen/7.0/unified/20240111.114549
wn.jang [Tue, 9 Jan 2024 04:47:21 +0000 (13:47 +0900)]
Update version (1.70.25)

Change-Id: I3412f68c7f6c5e5349befac426646a28dad2367e

17 months agoDelay quitting ecore main loop for 30s 91/303991/1
wn.jang [Wed, 3 Jan 2024 05:46:23 +0000 (14:46 +0900)]
Delay quitting ecore main loop for 30s

While the tts engine is terminating for 100ms, if the tts client try to connect to the engine,
the tts client is connected to the engine, which will be terminated.
And tts client can't request to launch tts engine by rpc port.

Change-Id: I8ac258d9aa26877ef19205278245b84506a1f5b9
(cherry picked from commit 19ea1a2069eb8e28a2e11070828ab15efb9fd3d9)

17 months agoMerge "Fix race condition when player thread is terminated" into tizen_7.0
Wonnam Jang [Wed, 3 Jan 2024 05:35:25 +0000 (05:35 +0000)]
Merge "Fix race condition when player thread is terminated" into tizen_7.0

17 months agoFix race condition when player thread is terminated 74/303574/1
wn.jang [Fri, 29 Dec 2023 05:43:59 +0000 (14:43 +0900)]
Fix race condition when player thread is terminated

Change-Id: I1db88e6f4f308e59eb1ff6122733e17361d36a7b

17 months agoFix race condition when player thread is terminated
wn.jang [Fri, 29 Dec 2023 05:43:59 +0000 (14:43 +0900)]
Fix race condition when player thread is terminated

Change-Id: I1db88e6f4f308e59eb1ff6122733e17361d36a7b

18 months agoUpdate version (1.70.24) 85/302285/1
Suyeon Hwang [Tue, 5 Dec 2023 06:05:29 +0000 (15:05 +0900)]
Update version (1.70.24)

Change-Id: I22863d676449f8507af4867b62fe2501bb38e161
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
18 months agoRemove unnecessary sub thread checking logic 84/302284/1
Suyeon Hwang [Thu, 30 Nov 2023 10:03:20 +0000 (19:03 +0900)]
Remove unnecessary sub thread checking logic

- Issue:
Sometimes tts_destroy() is delayed without any reason.

- Solution:
This patch removes unncessary logic for checking active ecore sub
thread. In old version, tts.c module makes a sub thread for some reason
so the framework should check the active subthread for safe handle
destroy. However, since tizen 7.0, tts.c module does not make a sub
thread any more. And only the tts_core.c makes some sub thread and those
sub threads are completely controlled by the framework. So the checking
logic in tts.c is unncessary now.

Change-Id: I5f2ea8aa16f65e82e94332c046ae74ffba569f78
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
18 months agoFix thread suspend logic for pkgmgr_thread 83/302283/1
Suyeon Hwang [Tue, 24 Oct 2023 06:33:44 +0000 (15:33 +0900)]
Fix thread suspend logic for pkgmgr_thread

- Issue:
If pkgmgr_client_new() is continously failed, pkgmgr_thread can sleep
very long time and this can cause deadlock when the app tries to destroy
the handle.

- Solution:
To reduce the error log, gradually increased suspend time logic was
added in pkgmgr thread. However, the suspend time could increase
without limitation and this long suspend time might cause critical
deadlock.
To solve this problem, this patch changes the suspend logic with
conditional variable. Using conditional variable, the framework will be
able to resume the thread and properly terminate it even if the suspend
time is too long. And also this patch adds a limitation for the suspend
time. So, even if the thread termination logic is failed, the thread
will be exited in a reasonable time.

Change-Id: I6e126464032a70dbf1d5f63a03c7a85c01ef0a8d
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
21 months agoUpdate version (1.70.23) 56/298156/1 accepted/tizen/7.0/unified/20230904.170929
Suyeon Hwang [Fri, 1 Sep 2023 08:42:16 +0000 (17:42 +0900)]
Update version (1.70.23)

Change-Id: I7bf22037d9ce1951b4081e924be0e9af328a0938
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
21 months agoImplement internal API for synthesized PCM 45/298145/1
wn.jang [Fri, 9 Dec 2022 09:39:39 +0000 (18:39 +0900)]
Implement internal API for synthesized PCM

Change-Id: I01563b86646952c6d55d3e111e910223a6b4c218

2 years agoUpdate version (1.70.22) 81/293781/1
Suyeon Hwang [Mon, 5 Jun 2023 01:59:19 +0000 (10:59 +0900)]
Update version (1.70.22)

Change-Id: I94b8dd95f8b507adda73e2192806a5726cb98072
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoDestroy old rpc handle for clean reconnection 63/293763/1
Suyeon Hwang [Fri, 2 Jun 2023 11:27:19 +0000 (20:27 +0900)]
Destroy old rpc handle for clean reconnection

- Issue:
When the client is disconnected, sometimes, the rpc handle can be
expired.

- Solution:
When the client is disconnected, the client should try to reconnect.
However, sometimes, the client can try to reconnect with expired rpc
handle. In this case, the client library can not create new rpc handle,
because current logic only makes new rpc handle if the function returns
I/O error. To resolve this issue, this patch destroyes the old handle
if the client is disconnected. Through this change, the client will be
sure to reconnect with new rpc handle.

Change-Id: Ic801abf2f69a291ca6b5c8748a67f987be81aa93
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoUpdate version (1.70.21) 20/293220/1 accepted/tizen/7.0/unified/20230526.164235
Suyeon Hwang [Tue, 23 May 2023 02:23:14 +0000 (11:23 +0900)]
Update version (1.70.21)

Change-Id: I5bff26805f85c73f6822b67d62910e178e57a204
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoMove unreleased definitions to the internal header 19/293219/1
Suyeon Hwang [Tue, 18 Apr 2023 02:39:17 +0000 (11:39 +0900)]
Move unreleased definitions to the internal header

Change-Id: I4746d219d5385713b278bca58abf9115061837c3
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoUpdate version (1.70.20) 38/292438/1 accepted/tizen/7.0/unified/20230511.022343
Suyeon Hwang [Mon, 8 May 2023 06:17:30 +0000 (15:17 +0900)]
Update version (1.70.20)

Change-Id: I0284c0f21aecd2db214ef1e5edca1393176d3f4a
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoSet status vconf when the synthesis is started 36/292436/1
Suyeon Hwang [Mon, 8 May 2023 06:15:02 +0000 (15:15 +0900)]
Set status vconf when the synthesis is started

Change-Id: Id6152a67321c63d917fb763a5837e35f5ea36386
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoMerge changes I7b3980f9,I72067b8a into tizen_7.0
Suyeon Hwang [Thu, 6 Apr 2023 06:54:04 +0000 (06:54 +0000)]
Merge changes I7b3980f9,I72067b8a into tizen_7.0

* changes:
  Update version (1.70.19)
  Set name for TTS player thread

2 years agoUpdate version (1.70.19) 55/290955/4
Suyeon Hwang [Wed, 5 Apr 2023 12:30:41 +0000 (21:30 +0900)]
Update version (1.70.19)

Change-Id: I7b3980f944bb2df3973732a6b69e54d5f40df19b
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoSet name for TTS player thread 54/290954/4
Suyeon Hwang [Wed, 5 Apr 2023 12:30:11 +0000 (21:30 +0900)]
Set name for TTS player thread

Change-Id: I72067b8a0e59e2529157d59e4a9bac6e59ce7937
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoDestroy tts handle always on the main thread 27/290927/1 accepted/tizen/7.0/unified/20230406.152457
Suyeon Hwang [Mon, 20 Feb 2023 02:13:24 +0000 (11:13 +0900)]
Destroy tts handle always on the main thread

- Issue:
In C# application, the garbage colletor can destroy tts handle on a sub
thread, and this behavior can make thread safety issues.

- Solution:
The C# garbage collector can release the instance on a sub thread, so
this can make race condition issues. To prevent this kind of issues,
this patch adds a new logic to tts_destroy() function. Through this
change, the handle destruction logic of tts_destroy() will always be
run on a main thread. This change will prevent race condition issues
because the logic insures that every handle destructions are run on a
main thread and they are not destroyed at the same time.

Change-Id: I90c248a4975410d4211dea93f24ea43e7c00ecb1
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
(cherry picked from commit fc9fbc084158df81c527568df3af343caf75cd4e)

2 years agoExtend time delay every 5 failures 91/287691/1 accepted/tizen/7.0/unified/20230209.070233
wn.jang [Thu, 19 Jan 2023 06:04:15 +0000 (15:04 +0900)]
Extend time delay every 5 failures

Cause:
In case of robot image, pkgmgr_client_new() function always returns fail.
So it cause a lot of error message and it makes a huge log file over 1GB.

Solution:
Time delay is extended every 5 failures.
This patch makes only 92 errors in 1 day, and only 110 error messages in 10 days.

Change-Id: Ibd5e5844a543adc6831d5ce76858254505dcba3d
(cherry picked from commit 0a72238c9b7d2555704faa917de12bbb7d813d7f)

2 years agoUpdate version (1.70.18) 46/287546/1
Suyeon Hwang [Tue, 31 Jan 2023 08:02:04 +0000 (17:02 +0900)]
Update version (1.70.18)

Change-Id: I43c085353bbc0a5c00f31e0d507ca796cf5608ea
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoDestroy RPC handle in ecore idler 97/287297/4
Suyeon Hwang [Thu, 26 Jan 2023 07:52:09 +0000 (16:52 +0900)]
Destroy RPC handle in ecore idler

- Issue:
Invoking tts_unprepare() in event callbacks is allowed and this may
cause segmentation fault by destroying RPC handle in the callback which
is invoked by RPC message.

- Solution:
The app can call tts_unprepare() in the callback. However, this
invocation may cause segmentation fault by destroying the RPC handle in
the callback of the RPC handle itself.
To solve this issue, this patch fixes the RPC handle destruction logic.
Through this patch, the client lib will destroy the handle in ecore idler
callback. This behavior can avoid wrong handle destruction.

Change-Id: I01a2ae528be8f0fa8683c608b3786b5db282d0e1
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoUpdate version (1.70.17) 93/286593/1 accepted/tizen/7.0/unified/20230116.165318
Suyeon Hwang [Tue, 10 Jan 2023 09:38:53 +0000 (18:38 +0900)]
Update version (1.70.17)

Change-Id: Ia967177c08ae60c7f59f41646da37316985f5aa3
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoCheck and try to recreate the handle if the handle is invalid 78/286578/3
Suyeon Hwang [Tue, 10 Jan 2023 05:23:20 +0000 (14:23 +0900)]
Check and try to recreate the handle if the handle is invalid

- Issue:
Sometimes, the handle creation for audio framework is failed, but the
stt framework try to use this invalid handle.

- Solution:
The AudioStream class did not set nullptr to audio handles. Because of
this behavior, if the handle was not created from the audio framework,
the AudioStream class tried to use garbage pointer as audio handle. This
caused some crashes. To solve this issue, this patch makes the
AudioStream class initialize the audio handle as nullptr. And also, this
patch adds new code for re-creating audio handles of AudioStream and
BackgroundVolume class. This new code is going to be invoked when some
audio handles are not valid.

Change-Id: I7c98473bf9ced056e4a6dfd579455e94db0b9993
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoUpdate version (1.70.16) 31/286431/1 accepted/tizen/7.0/unified/20230106.165639
Suyeon Hwang [Fri, 6 Jan 2023 01:21:38 +0000 (10:21 +0900)]
Update version (1.70.16)

Change-Id: I584b5a4484a89bba86ad3b8bafbb054d4b0b8cdf
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoFix rpc port creation timing 66/286266/5
Suyeon Hwang [Tue, 3 Jan 2023 03:33:06 +0000 (12:33 +0900)]
Fix rpc port creation timing

- Issue:
Even if the tidl connection is out, client lib may ignore connect
request.
And also, the tidl can not re-connect synchronously right after the tidl
is disconnected.

- Solution:
TIDL connect request is up to connected flag variable in tidl info
structure. However, the connected flag is only set by connected,
rejected, and disconnected event callback. And also, tidl can not
re-connect synchronously right after the disconnect() of tidl is invoked.
So, current client lib can not connect to stub in some specific
situation.
To solve this issue, this patch changes the rpc port creation timing.
Through this patch, tts_tidl module always reset the rpc port when the
io error occurs. And also, tts_tidl module can assure the connection by
creating new rpc port when the client want to prepare.

Change-Id: I8cfc143aebb331389d1fb205b7526b43f0301fee
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoMerge branch 'tizen' into tizen_7.0 23/285423/1
Suyeon Hwang [Mon, 12 Dec 2022 11:09:41 +0000 (20:09 +0900)]
Merge branch 'tizen' into tizen_7.0

Change-Id: I9cb1e0ee0851c6cbdeade7f9ce67487f0cc55d89

2 years agoMerge "Add codes in client side to set/unset callback for retrieving sythesized pcm...
Wonnam Jang [Fri, 9 Dec 2022 09:37:47 +0000 (09:37 +0000)]
Merge "Add codes in client side to set/unset callback for retrieving sythesized pcm data" into tizen

2 years agoUpdate version (1.70.15) 49/285249/1
Suyeon Hwang [Thu, 8 Dec 2022 05:59:56 +0000 (14:59 +0900)]
Update version (1.70.15)

Change-Id: I3924400bb6249e2d9f5d8a21546c92e71953baaa
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoTry to reprepare when IPC I/O error occurs 29/285229/3
Suyeon Hwang [Thu, 8 Dec 2022 02:02:12 +0000 (11:02 +0900)]
Try to reprepare when IPC I/O error occurs

- Issue:
TTS API will be failed when the engine is terminated after the client
library already sends request.

- Solution:
Current client library does not handle the network connection failed
situation because almost those situations are covered by reprepare
logic. However, if the engine is terminated without handling client IPC
message, client library should returns error.
Thus, this patch adds new retry logic when network error occurs. Through
this logic, some of the issue case will be covered. However, if engine
has critical issue, then this logic also can cover those situations.

Change-Id: I07075e0139d058f9f9bc84026a00309bf1815066
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAdd codes in client side to set/unset callback for retrieving sythesized pcm data 33/284933/4
wn.jang [Thu, 1 Dec 2022 07:48:34 +0000 (16:48 +0900)]
Add codes in client side to set/unset callback for retrieving sythesized pcm data

Change-Id: I938872f2546f8462eb8ffd10fc40b522909ee16c

2 years agoUpdate version (1.70.14) 25/284625/1
Suyeon Hwang [Tue, 22 Nov 2022 04:47:47 +0000 (13:47 +0900)]
Update version (1.70.14)

Change-Id: I3035a53632eb0a2803efee077faff67e62a72a6e
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAdd TC for checking prepare 19/284619/3
Suyeon Hwang [Tue, 22 Nov 2022 01:12:38 +0000 (10:12 +0900)]
Add TC for checking prepare

- Contents:
This patch adds new TC for check whether tts_prepare() properly succeed
after tts_unprepare().

Change-Id: I3766898d06f33c18a07c80a201e125de94789325
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAssure that client always registers the callback in sync prepare 94/284594/3
Suyeon Hwang [Mon, 21 Nov 2022 10:37:27 +0000 (19:37 +0900)]
Assure that client always registers the callback in sync prepare

- Issue:
Sometimes, the message receive callback registration is skipped even if
the connection is normal.

- Solution:
The client lib always checks the 'register_callback_invoked' flag, but
this flag may not be set properly some cases even if client tries to
prepare synchronously. Thus, this patch removes the flag checking code
from synchronous prepare logic. The synchronous prepare should insure
the invocation of all protocol, so through this patch, the all step of
preparation will be invoked.

Change-Id: If89f4065f139ec032bedddebf6a9927c74f100e7
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoUpdate version (1.70.13) 30/284430/1
Suyeon Hwang [Thu, 17 Nov 2022 01:08:32 +0000 (10:08 +0900)]
Update version (1.70.13)

Change-Id: Ic76ca3b081b7a38de6b3d0912b3cbea1997cfa71
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAdd mutex for set repeat text 75/284375/1
Suyeon Hwang [Wed, 16 Nov 2022 11:11:19 +0000 (20:11 +0900)]
Add mutex for set repeat text

- Issue:
Sometimes, invalid access occurs if app tries to add text in multi
thread enviroment.

- Solution:
App can add text frequently. And also, app can add text in multi thread
enviroment. However, the text_repeat property of client is not safe in
multi thread enviroment. Thus, this patch adds mutex lock for protect
text_repeat from race condition. Through this patch, app can be add text
safely in multi thread.

Change-Id: Iffcce54fcbc34436bf9f4d7ec7aadf571f05889b
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoMerge branch 'tizen' into tizen_7.0 10/284010/1
Suyeon Hwang [Tue, 8 Nov 2022 10:53:30 +0000 (19:53 +0900)]
Merge branch 'tizen' into tizen_7.0

Change-Id: I5a6cc17069ed5460946025805f916770ac0ff6a1

2 years agoRemove logs making delay of IPC 99/283899/2
Suyeon Hwang [Mon, 7 Nov 2022 04:47:24 +0000 (13:47 +0900)]
Remove logs making delay of IPC

- Issue:
Sometimes, the IPC request from client is delayed.

- Solution:
By the priority of the process, app manager APIs can be delayed. Thus,
this patch removes some logs that needs to invoke app manager APIs.
Through this patch, the IPC requests will be invoked directly without
any delay.

Change-Id: I19feed1a444364da4f54a729b72ab562a5ea2865
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoUpdate version (1.70.12) 02/283902/2 accepted/tizen/7.0/unified/20221107.172921 accepted/tizen/7.0/unified/20221110.062107
Suyeon Hwang [Mon, 7 Nov 2022 04:55:38 +0000 (13:55 +0900)]
Update version (1.70.12)

Change-Id: I6a125484a513bce5e8555ec85b69b46dd90d7668
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoRemove logs making delay of IPC 00/283900/2
Suyeon Hwang [Mon, 7 Nov 2022 04:47:24 +0000 (13:47 +0900)]
Remove logs making delay of IPC

- Issue:
Sometimes, the IPC request from client is delayed.

- Solution:
By the priority of the process, app manager APIs can be delayed. Thus,
this patch removes some logs that needs to invoke app manager APIs.
Through this patch, the IPC requests will be invoked directly without
any delay.

Change-Id: I19feed1a444364da4f54a729b72ab562a5ea2865
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoDelete timer handle for service state changed notification 74/280674/4
Suyeon Hwang [Fri, 2 Sep 2022 05:05:40 +0000 (14:05 +0900)]
Delete timer handle for service state changed notification

- Issue:
The timer handle for service state changed notification is not deleted
if ttsd_finalize() is invoked before that the timer is handled.

- Solution:
This patch makes ttsd_finalize() delete the timer handle. And also, the
memory which stores the state change information should be deleted with
deleting the timer, because the memory is allocated for this timer
behavior.

Change-Id: I7a429c8ab5fb89237ba38c2b1c44c9d606ef01dd
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoSend callback message to clients which set callback 73/280673/4
Suyeon Hwang [Fri, 2 Sep 2022 02:11:14 +0000 (11:11 +0900)]
Send callback message to clients which set callback

- Requirements:
Server wants to send required IPC message when service state is changed.

- Solution:
Through previous commit, callback registration information was added.
Using this new information, server can decide whether the client require
to receive service state changed event. This patch adds checker for
deciding whether client regists callback.

Change-Id: I3ea1cc9e61626f393dc49a9bceff6c4b05a4a77c
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAdd callback set information into prepare interface 72/280672/4
Suyeon Hwang [Thu, 1 Sep 2022 11:25:30 +0000 (20:25 +0900)]
Add callback set information into prepare interface

- Requirement:
Server wants to information about whether the client set the service
state changed callback.

- Solution:
Service state is frequently changed, so IPC for notification of service
state change is invoked so many times for all client. However, most of
the client did not register the callback, so many resource can be
wasted by this unvaluable invocation. To reduce wasted resources, this
patch adds callback registration information into IPC interface.
Through this new information server can send valid  notification without
waste.

Change-Id: I8a70b694854eefa9c1f2e58726cb6f4c54ba2f65
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoClean up unnecessary header files 21/283721/2
Suyeon Hwang [Wed, 2 Nov 2022 06:59:36 +0000 (15:59 +0900)]
Clean up unnecessary header files

Change-Id: If88d1be2aef5989c2e5859750f9a97e2a273fae5
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoFix static anlysis issues 69/282969/3
Suyeon Hwang [Fri, 14 Oct 2022 02:58:40 +0000 (11:58 +0900)]
Fix static anlysis issues

- Contents:
This patch includes these changes:
  - Remove equality check of floating point values.
  - Remove TOC-TOU problem.
  - Make blocks for code in switch-case statements.
  - Remove arguments from void parameter function.

Change-Id: I119d15f3a600a9cf51e5b9150a69530f782cd04b
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoChange sound_server_ready to focus_server_ready 15/283515/1
sooyeon [Fri, 28 Oct 2022 01:44:09 +0000 (10:44 +0900)]
Change sound_server_ready to focus_server_ready

Change-Id: I120f3efc7514c71ee294e8267a6b1c683bc13850
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
2 years agoChange sound_server_ready to focus_server_ready 11/283511/1
sooyeon [Fri, 28 Oct 2022 01:44:09 +0000 (10:44 +0900)]
Change sound_server_ready to focus_server_ready

Change-Id: I120f3efc7514c71ee294e8267a6b1c683bc13850
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
2 years agoMerge changes I439a2879,Iaef6463d into tizen
Jihoon Kim [Tue, 18 Oct 2022 06:39:37 +0000 (06:39 +0000)]
Merge changes I439a2879,Iaef6463d into tizen

* changes:
  Remove trailing whitespaces
  Fix typo issue in tts_setting document

2 years agoRemove trailing whitespaces 05/283105/1
Jihoon Kim [Tue, 18 Oct 2022 06:31:22 +0000 (15:31 +0900)]
Remove trailing whitespaces

Change-Id: I439a2879de0c3f4dde3f21b47483798d0fa52cb4
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
2 years agoFix typo issue in tts_setting document 03/283103/1
Jihoon Kim [Tue, 18 Oct 2022 06:21:13 +0000 (15:21 +0900)]
Fix typo issue in tts_setting document

Change-Id: Iaef6463d77ebe7a742c9e7cd3c4ffd1a148f4413
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
2 years agoUpdate version (1.70.12) 59/282959/1
Suyeon Hwang [Thu, 13 Oct 2022 09:27:16 +0000 (18:27 +0900)]
Update version (1.70.12)

Change-Id: I0cf661a275ac86b49f0cbd6240fff581a17d694f
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoSet engine id from vconf value when default config is set 14/282914/4
Suyeon Hwang [Thu, 13 Oct 2022 07:45:49 +0000 (16:45 +0900)]
Set engine id from vconf value when default config is set

- Issue:
When default configuration is loaded, invalid engine id can be set.

- Solution:
Default configuration stores fixed engine id, so the engine id can be
not installed in the image. Thus, this patch changes the logic for
loading default configuration. Through this patch, vconf value is used
default engine id when default configuration is loaded.

Change-Id: Ifa37d1eceb5df126b69ac7455aea0dc0e12005fa
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoRollback of changing engine-info directories and file mod 28/282528/1 accepted/tizen_7.0_unified_hotfix tizen_7.0_hotfix accepted/tizen/7.0/unified/hotfix/20221116.110226 accepted/tizen/unified/20221006.065321 accepted/tizen/unified/20221006.065358 tizen_7.0_m2_release
sooyeon [Wed, 5 Oct 2022 05:40:36 +0000 (14:40 +0900)]
Rollback of changing engine-info directories and file mod

Change-Id: If455a705207a310818345fa121d159b907998d62
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
2 years agoUpdate version (1.70.11) 11/281811/1 accepted/tizen/unified/20220923.125139
wn.jang [Thu, 22 Sep 2022 05:40:11 +0000 (14:40 +0900)]
Update version (1.70.11)

Change-Id: Ib203747a3b2b43bd1acd8efefcc1d9be5a2997be

2 years agoCheck whether pointer is NULL or not, before use 01/281801/1
wn.jang [Thu, 22 Sep 2022 05:09:54 +0000 (14:09 +0900)]
Check whether pointer is NULL or not, before use

Change-Id: I498b36afbee0247b6c5add8ca7b976df2211ed1a

2 years agoMerge "Fix defect that is detected by static analysis tool" into tizen accepted/tizen/unified/20220922.114004
Wonnam Jang [Wed, 21 Sep 2022 10:53:29 +0000 (10:53 +0000)]
Merge "Fix defect that is detected by static analysis tool" into tizen

2 years agoFix defect that is detected by static analysis tool 55/281755/3
wn.jang [Wed, 21 Sep 2022 10:36:35 +0000 (19:36 +0900)]
Fix defect that is detected by static analysis tool

Cause: When calloc returns NULL, dereferencing a pointer might be nullptr data.

Solution: Check whether calloc is succeeded or not.

Change-Id: I72aa53d041d9cd5d358907f6d2f7ebcb140ab601

2 years agoUpdate version (1.70.10) 28/281728/1 accepted/tizen/unified/20220922.062106 accepted/tizen/unified/20220922.062730
sooyeon [Wed, 21 Sep 2022 06:28:52 +0000 (15:28 +0900)]
Update version (1.70.10)

Change-Id: Ib63dd440e20150cb584935382fcd9aa967630b22
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
2 years agoChange engine-info directory and Change file mod 27/281727/1
sooyeon [Wed, 21 Sep 2022 05:52:13 +0000 (14:52 +0900)]
Change engine-info directory and Change file mod

Change-Id: Ie643075c6b2fd41044473ceab5f40e82b31e7446
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
2 years agoMerge "Add dbus allow own for root users in dbus policy" into tizen
Sooyeon Kim [Mon, 19 Sep 2022 07:44:49 +0000 (07:44 +0000)]
Merge "Add dbus allow own for root users in dbus policy" into tizen

2 years agoMerge "Change directories of tts-config file and engine-info file" into tizen
Sooyeon Kim [Mon, 19 Sep 2022 05:05:55 +0000 (05:05 +0000)]
Merge "Change directories of tts-config file and engine-info file" into tizen

2 years agoSave configuratio change before auto language setting 97/280597/1
Suyeon Hwang [Thu, 1 Sep 2022 05:02:14 +0000 (14:02 +0900)]
Save configuratio change before auto language setting

- Issue:
Setting API did not save the change of auto voice enabling
configuration.

- Solution:
The configuration is stored in memory by tts_parser_set_config_info() and
stored in configuration file by other functions from tts_parser module.
However, in current logic for change auto voice configuration,
tts_config_mgr_set_auto_voice() function tries to store configuration
file without storing memory when the auto voice is true. This may cause
the situation that the memory and file are not matched.
So this patch makes the function store the configuration in memory
first.

Change-Id: I9602bcc9cbc3aad0e56fad068e159b144b0d1ab9
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoChange directories of tts-config file and engine-info file 60/280260/2
sooyeon [Fri, 26 Aug 2022 02:39:43 +0000 (11:39 +0900)]
Change directories of tts-config file and engine-info file

- Issue: In case of root daemon, it cannot access tts-config file and engine-info file,
        because they are installed in user directories respectively.

- Solution: We move tts-config file and engine-info file to global user data (/opt/usr/data)
           to make both root daemon and users access the files.

Change-Id: I7379846bbf54539eb3d81b3bb91e32b8103f94e5
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
2 years agoMerge "Add logs to check whether TTS engine is launched or not" into tizen
Sooyeon Kim [Wed, 24 Aug 2022 01:36:37 +0000 (01:36 +0000)]
Merge "Add logs to check whether TTS engine is launched or not" into tizen

2 years agoUpdate version (1.70.9) 72/280072/2 accepted/tizen/unified/20220824.135613 submit/tizen/20220823.092009
Suyeon Hwang [Tue, 23 Aug 2022 07:02:56 +0000 (16:02 +0900)]
Update version (1.70.9)

Change-Id: I597731fe31f1778c17b8ac184497986a40dc656d
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAdd unit tests for new API about service state 48/279848/5
Suyeon Hwang [Fri, 12 Aug 2022 02:52:09 +0000 (11:52 +0900)]
Add unit tests for new API about service state

This patch adds new unit tests based on gTest. Through this patch, you
can tests the behavior of new APIs.

Change-Id: I587f1d4a47ca467f6b7258e8729c34c22dcebbef
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoMerge changes Ia966b28c,Ic20dce88,I10407b1e,I3fe6a38f into tizen
Suyeon Hwang [Tue, 23 Aug 2022 07:00:55 +0000 (07:00 +0000)]
Merge changes Ia966b28c,Ic20dce88,I10407b1e,I3fe6a38f into tizen

* changes:
  Implement service state changed event transfering
  Implement getter for service state
  Add interfaces for transfering service state
  Add new class for managing state of server

2 years agoAdd new flag variable for checking state 50/280050/2
Suyeon Hwang [Tue, 23 Aug 2022 02:30:17 +0000 (11:30 +0900)]
Add new flag variable for checking state

- Issue:
The engine did not call ttse_main(), but the engine library works like
that ttse_main() was already invoked.

- Solution:
The APIs provided by engine library checks g_is_terminate flag variable
for checking whether ttse_main() is invoked or not. However,
g_is_terminate variable is for checking whether ttse_terminate() is
invoked not for checking ttse_main() invocation. So even if the engine
does not call ttse_main(), the library could not know that ttse_main()
was not invoked yet. Thus, this patch adds new flag variable for
ttse_main() invocation.

Change-Id: I82e1df3abe2f685b19a6cd5a85c84c21d28d9624
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAdd logs to check whether TTS engine is launched or not 92/279992/1
sooyeon [Fri, 18 Mar 2022 17:03:51 +0000 (02:03 +0900)]
Add logs to check whether TTS engine is launched or not

Change-Id: I880fdb546a440334b0295d8ba80585e38d748a6b
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
(cherry picked from commit 8925dec19a67413070834ee9655bdc77633253bf)

2 years agoImplement service state changed event transfering 47/279847/2
Suyeon Hwang [Thu, 11 Aug 2022 10:35:43 +0000 (19:35 +0900)]
Implement service state changed event transfering

This patch implements service state changed event. Through this patch,
the client receives service state change information from server.

Change-Id: Ia966b28cc76c39ba0a535e1fd98edfcf04e3ceea
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoImplement getter for service state 46/279846/2
Suyeon Hwang [Thu, 11 Aug 2022 06:35:07 +0000 (15:35 +0900)]
Implement getter for service state

This patch implements the business logic for service state getter
functions. For thses, this patch uses interfaces introduced previous
commit.

Change-Id: Ic20dce885dbfde86fd9911dcb971d65c8d66629b
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAdd interfaces for transfering service state 45/279845/2
Suyeon Hwang [Thu, 11 Aug 2022 06:04:07 +0000 (15:04 +0900)]
Add interfaces for transfering service state

- Requirement:
The client and server needs interface for requesting and transfering
service state, respectively.

- Solution:
This patch adds new interfaces for requesting and transfering service
state. These new interfaces includes both Dbus and TIDL.

Change-Id: I10407b1e7c0bed1cb377c83d27c29db09882fefd
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAdd new class for managing state of server 44/279844/2
Suyeon Hwang [Wed, 10 Aug 2022 12:11:22 +0000 (21:11 +0900)]
Add new class for managing state of server

- Requirement:
The TTS engine library needs to manage its state.

- Solution:
This patch adds new class StateManager which helps to manage state of
TTS service. Through this new class, the TTS engine library can easily
change the state and notify it.

Change-Id: I3fe6a38fcd9f55f8027b8ed1cdec8ca453cbe9a8
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAdd missed error description 87/279887/1
Suyeon Hwang [Fri, 19 Aug 2022 01:31:15 +0000 (10:31 +0900)]
Add missed error description

Change-Id: I8ca103f942fed8a63864caa7fb71db486b1387c5
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoMerge "Add new APIs about service state information" into tizen accepted/tizen/unified/20220819.122443 submit/tizen/20220818.122451
Suyeon Hwang [Thu, 18 Aug 2022 08:31:08 +0000 (08:31 +0000)]
Merge "Add new APIs about service state information" into tizen

2 years agoAdd not supported error description and checker logic 03/279803/1
Suyeon Hwang [Thu, 18 Aug 2022 05:25:23 +0000 (14:25 +0900)]
Add not supported error description and checker logic

- Issue:
New APIs are related with the TTS feature, but there is no information
about the feature in description of APIs.

- Solution:
This patch adds description for feature not supported error. And also,
this patch implements feature checker logic. Through this patch, the
APIs will not working if the feature is not enabled and return not
supported error.

Change-Id: I4c92376db2f98562c8792bc9446cb7a77d8a4626
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAdd new APIs about service state information 23/279623/8
Suyeon Hwang [Wed, 10 Aug 2022 09:38:37 +0000 (18:38 +0900)]
Add new APIs about service state information

- Requirement:
An application needs state of TTS service in order to check whether the
TTS service is able to handle the request of the application.

- Solution:
This patch adds new APIs for checking state of TTS service. Through
these new APIs, applications which use TTS can check the state of TTS
service and handle the TTS request according to the state of TTS
service.

Change-Id: I7fbbf3f9e316b91468423c26c38452383498cf34
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoUpdate version (1.70.8) 27/279727/1 submit/tizen/20220817.095233 submit/tizen/20220818.012052
Suyeon Hwang [Wed, 17 Aug 2022 04:42:53 +0000 (13:42 +0900)]
Update version (1.70.8)

Change-Id: I89e6a033e5a697b5c673012afffe46f828e7f496
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoImplement behavior of new APIs 62/279162/5
Suyeon Hwang [Mon, 1 Aug 2022 08:35:07 +0000 (17:35 +0900)]
Implement behavior of new APIs

This patch is for implementing new APIs introduced from previous commit.

Change-Id: Iaa157ffd229bf39f2a20754dfb641ea943c2e532
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAdd new class for managing activated mode 61/279161/5
Suyeon Hwang [Thu, 28 Jul 2022 11:44:59 +0000 (20:44 +0900)]
Add new class for managing activated mode

- Requirement:
TTS server should manage current activated mode information. This
information for the service engine application to help decide behavior
of the application.

- Solution:
In order to store and manage currently activated mode information, this
patch adds new class. This new class only manages the currently
activated mode information, and other modules can get this information
through the methods of this class.

Change-Id: I13d47ebcf3b28c18583ac3dbe14302af0438bf94
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAdd new APIs about activated mode information 60/279160/4
Suyeon Hwang [Mon, 1 Aug 2022 07:42:25 +0000 (16:42 +0900)]
Add new APIs about activated mode information

- Requirement:
Engine application needs mode information that is currently activated by
connected clients.

- Solution:
This patch adds new APIs about mode informatino that is currently
activated by connected clients. These new APIs sends activated mode
information through a getter or registered callback function.

Change-Id: Ie2a2c4c49be23d05195519c34dbc6d98c61e0bad
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoAdd dbus allow own for root users in dbus policy 15/279315/1
sooyeon [Fri, 5 Aug 2022 09:11:33 +0000 (18:11 +0900)]
Add dbus allow own for root users in dbus policy

Change-Id: I18ba4dbbfcee2e34efb6d8cc313584f453222b43
Signed-off-by: sooyeon <sooyeon.kim@samsung.com>
2 years agoLoad engine when the first client is connected 31/279131/3
Suyeon Hwang [Mon, 1 Aug 2022 05:27:54 +0000 (14:27 +0900)]
Load engine when the first client is connected

- Issue:
Engine loads model when the engine is initializing, so engine always has
to load model, even if engine application does not need to load model in
some case.

- Solution:
To solve this problem, first, we need to change the timing for loading
engine. This is because engine has no information about clients when
engine is initialzing. Without any clients information, engine can not
decide whether the engine needs to load model or not.
This patch changes the timing for loading engine to when the first client
information is received. Through this patch, engine already has client
information when engine has to decide model loading.

Change-Id: Idfb67c1209dd17da2a1298ff5b82e4fec2cde18e
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoMerge "Reduce log while waiting for comming synthesized pcm data" into tizen
Wonnam Jang [Tue, 2 Aug 2022 08:47:08 +0000 (08:47 +0000)]
Merge "Reduce log while waiting for comming synthesized pcm data" into tizen

2 years agoReduce log while waiting for comming synthesized pcm data 22/279122/2
wn.jang [Tue, 2 Aug 2022 08:30:40 +0000 (17:30 +0900)]
Reduce log while waiting for comming synthesized pcm data

Change-Id: If6b76a759512d133f5a780b43af63c830428b968

2 years agoRemove functions related with setting mode 17/279117/1
Suyeon Hwang [Fri, 29 Jul 2022 05:30:32 +0000 (14:30 +0900)]
Remove functions related with setting mode

- Issue:
Client mode information is already set in ttsd_server_initialize().

- Solution:
This patch removes functions that are releated with setting mode. These
functions are not neccessary anymore because mode information is already
set on ttsd_server_initialize().

Change-Id: Ic5f08edd9c98c4e5c34fd3d724de778f57e7991d
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoMerge setters and creater function about client 84/279084/2
Suyeon Hwang [Thu, 28 Jul 2022 12:00:05 +0000 (21:00 +0900)]
Merge setters and creater function about client

- Requirement:
Server want to store client mode and IPC method information when prepare
request from client is comming.

- Solution:
It is already possible to store client mode information using setter
functions. However, the mode and IPC method information will be decided
before that client requests prepare. So, using one function to store
these properties are more simple and comportable.
Thus, this patch adds new parameter into ttsd_server_initialize() and
ttsd_data_new_client(). Through this patch, the server can store client
mode and IPC method information during ttsd_data_new_client() invocation.

Change-Id: Ic9f3052a14d4133c6088088e36a827d261091ce1
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
2 years agoMerge "Fix IPC interface for preparing protocol" into tizen
Suyeon Hwang [Tue, 2 Aug 2022 04:28:41 +0000 (04:28 +0000)]
Merge "Fix IPC interface for preparing protocol" into tizen