static const char* FOCUS_SERVER_READY = "/tmp/.sound_server_ready";
-AudioStream::AudioStream(focusReleaseCallback focusReleaseCb)
+AudioStream::AudioStream()
{
__prepared = false;
- __focusReleaseCallback = focusReleaseCb;
__focusAquired = false;
createSoundStreamInfo();
AudioStream::~AudioStream()
{
- __focusReleaseCallback = nullptr;
__focusAquired = false;
unprepareAudioOut();
int ret = sound_manager_acquire_focus(__streamInfo, SOUND_STREAM_FOCUS_FOR_PLAYBACK, SOUND_BEHAVIOR_NONE, extra_info);
if (SOUND_MANAGER_ERROR_NONE != ret) {
- SLOG(LOG_WARN, tts_tag(), "[AudioStream] Fail to acquire focus");
+ SLOG(LOG_WARN, tts_tag(), "[AudioStream] Fail to acquire focus. ret(%s)", get_error_message(ret));
} else {
SLOG(LOG_DEBUG, tts_tag(), "[AudioStream] Success to acquire focus");
}
ret = audio_out_set_sound_stream_info(__audioHandle, __streamInfo);
if (AUDIO_IO_ERROR_NONE != ret) {
- SLOG(LOG_WARN, tts_tag(), "[AudioStream] Fail to set stream info");
+ SLOG(LOG_WARN, tts_tag(), "[AudioStream] Fail to set stream info. ret(%s)", get_error_message(ret));
return TTSD_ERROR_OPERATION_FAILED;
}
{
SLOG(LOG_INFO, tts_tag(), "[AudioStream] focus state changed to (%d) with reason(%d) and extra info(%s)",
(int)focus_state, (int)reason_for_change, extra_info);
-
- AudioStream* audioOut = static_cast<AudioStream*>(user_data);
- if (stream_info != audioOut->__streamInfo) {
- SLOG(LOG_ERROR, tts_tag(), "[AudioStream] Invalid stream info handle");
- return;
- }
-
- if (false == audioOut->__prepared || AUDIO_STATE_NONE == audioOut->__state || AUDIO_STATE_READY == audioOut->__state) {
- return;
- }
-
- if (SOUND_STREAM_FOCUS_FOR_PLAYBACK != focus_mask || SOUND_STREAM_FOCUS_STATE_RELEASED != focus_state) {
- return;
- }
-
- SLOG(LOG_INFO, tts_tag(), "[AudioStream] Focus is released on playing. Invoke callback");
- if (audioOut->__focusReleaseCallback) {
- audioOut->__focusReleaseCallback();
- }
}
int ttsd_player_init()
{
g_background_volume = new BackgroundVolume(SND_MGR_DUCKING_DURATION);
- g_audio_stream = new AudioStream(nullptr);
+ g_audio_stream = new AudioStream();
g_player_thread = new PlayerThread(__play_utterance_cb);
g_is_set_policy = false;
}
unsigned int currentUid = g_player_thread->getCurrentUid();
- if (0 < ttsd_data_is_client(currentUid)) {
- if (uid == currentUid) {
- SLOG(LOG_DEBUG, tts_tag(), "[Player] uid(%u) has already played", uid);
- return 0;
- } else {
- SLOG(LOG_WARN, tts_tag(), "[Player WARNING] stop old player (%u)", currentUid);
- ttsd_player_stop(currentUid);
- }
+ if (0 < ttsd_data_is_client(currentUid) && uid == currentUid) {
+ SLOG(LOG_DEBUG, tts_tag(), "[Player] uid(%u) has already played", uid);
+ return TTSD_ERROR_NONE;
}
SLOG(LOG_INFO, tts_tag(), "[Player] start play : uid(%u)", uid);