From 4b34cc77630112d00e9a87498d05f5f8803a9ff6 Mon Sep 17 00:00:00 2001 From: Jae Seo Date: Fri, 15 May 2015 17:29:39 -0700 Subject: [PATCH] TIF: Pass the playback params as a whole Bug: 21172914 Change-Id: I2d89f267d8d83b14b5d436304aa0ff82490211d8 --- media/java/android/media/tv/ITvInputManager.aidl | 3 ++- media/java/android/media/tv/ITvInputSession.aidl | 3 ++- .../android/media/tv/ITvInputSessionWrapper.java | 10 +++++----- media/java/android/media/tv/TvInputManager.java | 15 +++++---------- media/java/android/media/tv/TvView.java | 5 ++--- .../android/server/tv/TvInputManagerService.java | 11 +++++------ 6 files changed, 21 insertions(+), 26 deletions(-) diff --git a/media/java/android/media/tv/ITvInputManager.aidl b/media/java/android/media/tv/ITvInputManager.aidl index 6fe5dbbc8a13d..f8057dbfc898d 100644 --- a/media/java/android/media/tv/ITvInputManager.aidl +++ b/media/java/android/media/tv/ITvInputManager.aidl @@ -18,6 +18,7 @@ package android.media.tv; import android.content.ComponentName; import android.graphics.Rect; +import android.media.PlaybackParams; import android.media.tv.DvbDeviceInfo; import android.media.tv.ITvInputClient; import android.media.tv.ITvInputHardware; @@ -79,7 +80,7 @@ interface ITvInputManager { void timeShiftPause(in IBinder sessionToken, int userId); void timeShiftResume(in IBinder sessionToken, int userId); void timeShiftSeekTo(in IBinder sessionToken, long timeMs, int userId); - void timeShiftSetPlaybackRate(in IBinder sessionToken, float rate, int audioMode, int userId); + void timeShiftSetPlaybackParams(in IBinder sessionToken, in PlaybackParams params, int userId); void timeShiftEnablePositionTracking(in IBinder sessionToken, boolean enable, int userId); // For TV input hardware binding diff --git a/media/java/android/media/tv/ITvInputSession.aidl b/media/java/android/media/tv/ITvInputSession.aidl index 17f3984d7f266..6a06b8f194669 100644 --- a/media/java/android/media/tv/ITvInputSession.aidl +++ b/media/java/android/media/tv/ITvInputSession.aidl @@ -17,6 +17,7 @@ package android.media.tv; import android.graphics.Rect; +import android.media.PlaybackParams; import android.media.tv.TvTrackInfo; import android.net.Uri; import android.os.Bundle; @@ -50,6 +51,6 @@ oneway interface ITvInputSession { void timeShiftPause(); void timeShiftResume(); void timeShiftSeekTo(long timeMs); - void timeShiftSetPlaybackRate(float rate, int audioMode); + void timeShiftSetPlaybackParams(in PlaybackParams params); void timeShiftEnablePositionTracking(boolean enable); } diff --git a/media/java/android/media/tv/ITvInputSessionWrapper.java b/media/java/android/media/tv/ITvInputSessionWrapper.java index 58954bd3a9e33..66b904b5540d2 100644 --- a/media/java/android/media/tv/ITvInputSessionWrapper.java +++ b/media/java/android/media/tv/ITvInputSessionWrapper.java @@ -62,7 +62,7 @@ public class ITvInputSessionWrapper extends ITvInputSession.Stub implements Hand private static final int DO_TIME_SHIFT_PAUSE = 14; private static final int DO_TIME_SHIFT_RESUME = 15; private static final int DO_TIME_SHIFT_SEEK_TO = 16; - private static final int DO_TIME_SHIFT_SET_PLAYBACK_RATE = 17; + private static final int DO_TIME_SHIFT_SET_PLAYBACK_PARAMS = 17; private static final int DO_TIME_SHIFT_ENABLE_POSITION_TRACKING = 18; private final HandlerCaller mCaller; @@ -172,7 +172,7 @@ public class ITvInputSessionWrapper extends ITvInputSession.Stub implements Hand mTvInputSessionImpl.timeShiftSeekTo((Long) msg.obj); break; } - case DO_TIME_SHIFT_SET_PLAYBACK_RATE: { + case DO_TIME_SHIFT_SET_PLAYBACK_PARAMS: { PlaybackParams params = new PlaybackParams() .setSpeed((Float) msg.obj) .setAudioFallbackMode(msg.arg1); @@ -293,9 +293,9 @@ public class ITvInputSessionWrapper extends ITvInputSession.Stub implements Hand } @Override - public void timeShiftSetPlaybackRate(float rate, int audioMode) { - mCaller.executeOrSendMessage(mCaller.obtainMessageIO(DO_TIME_SHIFT_SET_PLAYBACK_RATE, - audioMode, Float.valueOf(rate))); + public void timeShiftSetPlaybackParams(PlaybackParams params) { + mCaller.executeOrSendMessage(mCaller.obtainMessageO(DO_TIME_SHIFT_SET_PLAYBACK_PARAMS, + params)); } @Override diff --git a/media/java/android/media/tv/TvInputManager.java b/media/java/android/media/tv/TvInputManager.java index caa8a092250bd..7fc19f19abdfe 100644 --- a/media/java/android/media/tv/TvInputManager.java +++ b/media/java/android/media/tv/TvInputManager.java @@ -20,6 +20,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SystemApi; import android.graphics.Rect; +import android.media.PlaybackParams; import android.net.Uri; import android.os.Bundle; import android.os.Handler; @@ -1747,23 +1748,17 @@ public final class TvInputManager { } /** - * Sets playback rate and audio mode. + * Sets playback rate using {@link android.media.PlaybackParams}. * - * @param rate The ratio between desired playback rate and normal one. - * @param audioMode Audio playback mode. Must be one of the supported audio modes: - * + * @param params The playback params. */ - void timeShiftSetPlaybackRate(float rate, int audioMode) { + void timeShiftSetPlaybackParams(PlaybackParams params) { if (mToken == null) { Log.w(TAG, "The session has been already released"); return; } try { - mService.timeShiftSetPlaybackRate(mToken, rate, audioMode, mUserId); + mService.timeShiftSetPlaybackParams(mToken, params, mUserId); } catch (RemoteException e) { throw new RuntimeException(e); } diff --git a/media/java/android/media/tv/TvView.java b/media/java/android/media/tv/TvView.java index 6169eeac52d7c..e7ce1dd7613bc 100644 --- a/media/java/android/media/tv/TvView.java +++ b/media/java/android/media/tv/TvView.java @@ -28,7 +28,6 @@ import android.media.PlaybackParams; import android.media.tv.TvInputManager.Session; import android.media.tv.TvInputManager.Session.FinishedInputEventCallback; import android.media.tv.TvInputManager.SessionCallback; -import android.media.tv.TvView.TimeShiftPositionCallback; import android.net.Uri; import android.os.Bundle; import android.os.Handler; @@ -470,13 +469,13 @@ public class TvView extends ViewGroup { } /** - * Sets playback rate using {@link android.media#PlaybackParams}. + * Sets playback rate using {@link android.media.PlaybackParams}. * * @param params The playback params. */ public void timeShiftSetPlaybackParams(@NonNull PlaybackParams params) { if (mSession != null) { - mSession.timeShiftSetPlaybackRate(params.getSpeed(), params.getAudioFallbackMode()); + mSession.timeShiftSetPlaybackParams(params); } } diff --git a/services/core/java/com/android/server/tv/TvInputManagerService.java b/services/core/java/com/android/server/tv/TvInputManagerService.java index a869c206bc4eb..0fffa0faa5bf8 100644 --- a/services/core/java/com/android/server/tv/TvInputManagerService.java +++ b/services/core/java/com/android/server/tv/TvInputManagerService.java @@ -39,6 +39,7 @@ import android.content.pm.ServiceInfo; import android.graphics.Rect; import android.hardware.hdmi.HdmiControlManager; import android.hardware.hdmi.HdmiDeviceInfo; +import android.media.PlaybackParams; import android.media.tv.DvbDeviceInfo; import android.media.tv.ITvInputClient; import android.media.tv.ITvInputHardware; @@ -87,8 +88,6 @@ import java.io.FileDescriptor; import java.io.FileNotFoundException; import java.io.IOException; import java.io.PrintWriter; -import java.lang.IllegalArgumentException; -import java.lang.Integer; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -1422,19 +1421,19 @@ public final class TvInputManagerService extends SystemService { } @Override - public void timeShiftSetPlaybackRate(IBinder sessionToken, float rate, int audioMode, + public void timeShiftSetPlaybackParams(IBinder sessionToken, PlaybackParams params, int userId) { final int callingUid = Binder.getCallingUid(); final int resolvedUserId = resolveCallingUserId(Binder.getCallingPid(), callingUid, - userId, "timeShiftSetPlaybackRate"); + userId, "timeShiftSetPlaybackParams"); final long identity = Binder.clearCallingIdentity(); try { synchronized (mLock) { try { getSessionLocked(sessionToken, callingUid, resolvedUserId) - .timeShiftSetPlaybackRate(rate, audioMode); + .timeShiftSetPlaybackParams(params); } catch (RemoteException | SessionNotFoundException e) { - Slog.e(TAG, "error in timeShiftSetPlaybackRate", e); + Slog.e(TAG, "error in timeShiftSetPlaybackParams", e); } } } finally {