Skip to content

Commit 491cebd

Browse files
committed
Revert "Remove ecore_main_loop_thread_safe_call_async"
This reverts commit 937be20.
1 parent c69d799 commit 491cebd

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

packages/audioplayers/tizen/src/audio_player.cc

+13-7
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ TizenResult AudioPlayer::Play() {
6262
return TizenResult(ret, "player_start failed");
6363
}
6464
should_play_ = false;
65-
StartPositionUpdates();
65+
EmitPositionUpdates();
6666
break;
6767
}
6868
default:
@@ -342,6 +342,10 @@ TizenResult AudioPlayer::PreparePlayer() {
342342
return TizenResult();
343343
}
344344

345+
void AudioPlayer::EmitPositionUpdates() {
346+
ecore_main_loop_thread_safe_call_async(StartPositionUpdates, this);
347+
}
348+
345349
TizenResult AudioPlayer::ResetPlayer() {
346350
player_state_e state;
347351
auto result = GetPlayerState(state);
@@ -413,7 +417,7 @@ void AudioPlayer::OnPrepared(void *data) {
413417
TizenResult(ret, "player_start failed").Message());
414418
return;
415419
}
416-
player->StartPositionUpdates();
420+
player->EmitPositionUpdates();
417421
player->should_play_ = false;
418422
}
419423

@@ -457,14 +461,16 @@ void AudioPlayer::OnError(int code, void *data) {
457461
player->error_listener_(player->player_id_, "Player error: " + error);
458462
}
459463

460-
void AudioPlayer::StartPositionUpdates() {
461-
if (!timer_) {
464+
void AudioPlayer::StartPositionUpdates(void *data) {
465+
auto *player = reinterpret_cast<AudioPlayer *>(data);
466+
if (!player->timer_) {
462467
// The audioplayers app facing package expects position
463468
// update events to fire roughly every 200 milliseconds.
464469
const double kTimeInterval = 0.2;
465-
timer_ = ecore_timer_add(kTimeInterval, OnPositionUpdate, this);
466-
if (!timer_) {
467-
error_listener_(player_id_, "Failed to add postion update timer.");
470+
player->timer_ = ecore_timer_add(kTimeInterval, OnPositionUpdate, data);
471+
if (!player->timer_) {
472+
player->error_listener_(player->GetPlayerId(),
473+
"Failed to add postion update timer.");
468474
}
469475
}
470476
}

packages/audioplayers/tizen/src/audio_player.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,15 @@ class AudioPlayer {
5555
// The player state should be idle before calling this function.
5656
TizenResult PreparePlayer();
5757
TizenResult ResetPlayer();
58-
void StartPositionUpdates();
58+
void EmitPositionUpdates();
5959
TizenResult GetPlayerState(player_state_e &out);
6060

6161
static void OnPrepared(void *data);
6262
static void OnSeekCompleted(void *data);
6363
static void OnPlayCompleted(void *data);
6464
static void OnInterrupted(player_interrupted_code_e code, void *data);
6565
static void OnError(int code, void *data);
66+
static void StartPositionUpdates(void *data);
6667
static Eina_Bool OnPositionUpdate(void *data);
6768

6869
player_h player_ = nullptr;

0 commit comments

Comments
 (0)