}
result
+_PlayerImpl::SeekTo(long msTime, bool useKeyFrame)
+{
+ result r = E_SUCCESS;
+ int ret = ::PLAYER_ERROR_NONE;
+
+ SysAssertf(__hPlayer != null, "Not yet constructed! Construct() should be called before use");
+
+ ret = player_get_state(__hPlayer, &__corePlayerCurState);
+ r = MapExceptionToResult(ret);
+ SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Failed to perform player_get_state operation with 0x%x", GetErrorMessage(r), ret);
+
+ SysTryReturn(NID_MEDIA, ((__corePlayerCurState == ::PLAYER_STATE_PLAYING ) || (__corePlayerCurState == ::PLAYER_STATE_PAUSED )
+ || (__corePlayerCurState == ::PLAYER_STATE_READY )), E_INVALID_STATE, E_INVALID_STATE
+ , "[E_INVALID_STATE] Player state is in an invalid state. Current state is %d", __corePlayerCurState);
+
+ SysTryReturn(NID_MEDIA, msTime >= 0, r = E_OUT_OF_RANGE, E_OUT_OF_RANGE, "[E_OUT_OF_RANGE] The msTime is not greater than 0");
+
+ ret = player_seek(__hPlayer, (int)msTime, useKeyFrame, PlayerSeekCompletedCallBack, (void *)this);
+ r = MapExceptionToResult(ret);
+ SysTryCatch(NID_MEDIA, r == E_SUCCESS, , r, "[%s] Failed to perform player_seek operation with [0x%x]", GetErrorMessage(r), ret);
+ return r;
+
+CATCH:
+ return r;
+}
+
+result
_PlayerImpl::SetVolume(int volume)
{
result r = E_SUCCESS;
bool IsLooping(void)const;
long GetDuration(void);
result SeekTo(long msTime);
+ result SeekTo(long msTime, bool useKeyFrame);
result SetVolume(int volume);
result SetMute(bool mute);
result SetLooping(bool looping);