Skip to content

Commit 052a1e5

Browse files
committed
Apply suggestions from code review
1 parent 36f830c commit 052a1e5

File tree

2 files changed

+38
-37
lines changed

2 files changed

+38
-37
lines changed

packages/audioplayers/tizen/src/audio_player.cc

Lines changed: 21 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,7 @@ void AudioPlayer::Play() {
8484
}
8585

8686
void AudioPlayer::Pause() {
87-
player_state_e state = GetPlayerState();
88-
if (state == PLAYER_STATE_PLAYING) {
87+
if (GetPlayerState() == PLAYER_STATE_PLAYING) {
8988
int ret = player_pause(player_);
9089
if (ret != PLAYER_ERROR_NONE) {
9190
throw AudioPlayerError("player_pause failed", get_error_message(ret));
@@ -183,8 +182,7 @@ void AudioPlayer::SetVolume(double volume) {
183182
}
184183
volume_ = volume;
185184

186-
player_state_e state = GetPlayerState();
187-
if (state != PLAYER_STATE_NONE) {
185+
if (GetPlayerState() != PLAYER_STATE_NONE) {
188186
int ret = player_set_volume(player_, volume_, volume_);
189187
if (ret != PLAYER_ERROR_NONE) {
190188
throw AudioPlayerError("player_set_volume failed",
@@ -217,8 +215,7 @@ void AudioPlayer::SetReleaseMode(ReleaseMode mode) {
217215
if (release_mode_ != mode) {
218216
release_mode_ = mode;
219217

220-
player_state_e state = GetPlayerState();
221-
if (state != PLAYER_STATE_NONE) {
218+
if (GetPlayerState() != PLAYER_STATE_NONE) {
222219
int ret =
223220
player_set_looping(player_, (release_mode_ == ReleaseMode::kLoop));
224221
if (ret != PLAYER_ERROR_NONE) {
@@ -239,26 +236,21 @@ void AudioPlayer::SetLatencyMode(bool low_latency) {
239236
}
240237

241238
int AudioPlayer::GetDuration() {
242-
// TODO(seungsoo47): Get duration in milliseconds, returns -1 if no duration
243-
// is available. The frontend package will handle these.
244239
int32_t duration;
245240
int ret = player_get_duration(player_, &duration);
246241
if (ret != PLAYER_ERROR_NONE) {
247-
OnLog("player_get_duration failed, " + std::string(get_error_message(ret)));
248-
return -1;
242+
throw AudioPlayerError("player_get_duration failed",
243+
get_error_message(ret));
249244
}
250245
return duration;
251246
}
252247

253248
int AudioPlayer::GetCurrentPosition() {
254-
// TODO(seungsoo47): Get position in milliseconds, returns -1 if no position
255-
// is available. The frontend package will handle these.
256249
int32_t position;
257250
int ret = player_get_play_position(player_, &position);
258251
if (ret != PLAYER_ERROR_NONE) {
259-
OnLog("player_get_play_position failed, " +
260-
std::string(get_error_message(ret)));
261-
return -1;
252+
throw AudioPlayerError("player_get_play_position failed",
253+
get_error_message(ret));
262254
}
263255
return position;
264256
}
@@ -365,12 +357,13 @@ void AudioPlayer::OnPrepared(void *data) {
365357
auto *player = reinterpret_cast<AudioPlayer *>(data);
366358
player->preparing_ = false;
367359

368-
int32_t duration = player->GetDuration();
369-
if (duration < 0) {
360+
try {
361+
player->duration_listener_(player->player_id_, player->GetDuration());
362+
player->prepared_listener_(player->player_id_, true);
363+
} catch (AudioPlayerError &error) {
364+
player->log_listener_(player->player_id_, error.code());
370365
return;
371366
}
372-
player->duration_listener_(player->player_id_, duration);
373-
player->prepared_listener_(player->player_id_, true);
374367

375368
player_set_playback_rate(player->player_, player->playback_rate_);
376369

@@ -460,17 +453,14 @@ void AudioPlayer::StartPositionUpdates() {
460453

461454
Eina_Bool AudioPlayer::OnPositionUpdate(void *data) {
462455
auto *player = reinterpret_cast<AudioPlayer *>(data);
463-
if (!player->IsPlaying()) {
464-
player->timer_ = nullptr;
465-
return ECORE_CALLBACK_CANCEL;
466-
}
467-
468-
int32_t duration = player->GetDuration();
469-
if (duration < 0) {
470-
player->timer_ = nullptr;
471-
return ECORE_CALLBACK_CANCEL;
456+
try {
457+
if (player->IsPlaying()) {
458+
player->duration_listener_(player->player_id_, player->GetDuration());
459+
return ECORE_CALLBACK_RENEW;
460+
}
461+
} catch (const AudioPlayerError &error) {
462+
player->log_listener_(player->player_id_, "Failed to update position.");
472463
}
473-
474-
player->duration_listener_(player->player_id_, duration);
475-
return ECORE_CALLBACK_RENEW;
464+
player->timer_ = nullptr;
465+
return ECORE_CALLBACK_CANCEL;
476466
}

packages/audioplayers/tizen/src/audioplayers_tizen_plugin.cc

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -225,13 +225,22 @@ class AudioplayersTizenPlugin : public flutter::Plugin {
225225
player->SetReleaseMode(StringToReleaseMode(release_mode));
226226
result->Success();
227227
} else if (method_name == "getDuration") {
228-
int32_t duration = player->GetDuration();
229-
result->Success(duration < 0 ? flutter::EncodableValue(std::monostate())
230-
: flutter::EncodableValue(duration));
228+
// TODO(seungsoo47): If an exception occurs, null is sent.
229+
try {
230+
result->Success(flutter::EncodableValue(player->GetDuration()));
231+
} catch (AudioPlayerError &error) {
232+
player->OnLog(error.code() + error.message());
233+
result->Success(flutter::EncodableValue(std::monostate()));
234+
}
231235
} else if (method_name == "getCurrentPosition") {
232-
int32_t position = player->GetCurrentPosition();
233-
result->Success(position < 0 ? flutter::EncodableValue(std::monostate())
234-
: flutter::EncodableValue(position));
236+
// TODO(seungsoo47): If an exception occurs, null is sent.
237+
try {
238+
result->Success(
239+
flutter::EncodableValue(player->GetCurrentPosition()));
240+
} catch (AudioPlayerError &error) {
241+
player->OnLog(error.code() + error.message());
242+
result->Success(flutter::EncodableValue(std::monostate()));
243+
}
235244
} else if (method_name == "setPlayerMode") {
236245
bool low_latency =
237246
GetRequiredArg<std::string>(arguments, "playerMode") ==
@@ -268,6 +277,8 @@ class AudioplayersTizenPlugin : public flutter::Plugin {
268277
audio_players_.clear();
269278
} else if (method_name == "setAudioContext") {
270279
OnGlobalLog("Setting AudioContext is not supported on Tizen");
280+
result->NotImplemented();
281+
return;
271282
} else if (method_name == "emitLog") {
272283
if (arguments) {
273284
auto message = GetRequiredArg<std::string>(arguments, "message");

0 commit comments

Comments
 (0)