summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Yixiao Luo <yixiaoluo@google.com> 2024-10-12 00:00:56 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-10-12 00:00:56 +0000
commitce292e6444ec816a448c52e510173965f1fc96ad (patch)
tree8b66dde4a42f648b09700f0dc9f852afa1b96c68
parent401423f3e1813f744f83ed161f680927be91c96b (diff)
parent2358ad8f5251023a6f605f4a20762af84c368dbf (diff)
Merge "ResourceHandle : Refactor resourceHandle data type to long" into main
-rw-r--r--media/java/android/media/MediaCas.java14
-rw-r--r--media/java/android/media/tv/tuner/Tuner.java38
-rw-r--r--media/java/android/media/tv/tunerresourcemanager/TunerResourceManager.java40
-rw-r--r--media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/ITunerResourceManager.aidl26
-rw-r--r--media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerDemuxInfo.aidl2
-rw-r--r--media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerFrontendInfo.aidl2
-rw-r--r--media/jni/android_media_tv_Tuner.cpp40
-rw-r--r--media/jni/android_media_tv_Tuner.h8
-rw-r--r--media/jni/tuner/TunerClient.cpp10
-rw-r--r--media/jni/tuner/TunerClient.h10
-rw-r--r--services/core/java/com/android/server/tv/tunerresourcemanager/CasResource.java8
-rw-r--r--services/core/java/com/android/server/tv/tunerresourcemanager/CiCamResource.java2
-rw-r--r--services/core/java/com/android/server/tv/tunerresourcemanager/ClientProfile.java28
-rw-r--r--services/core/java/com/android/server/tv/tunerresourcemanager/DemuxResource.java2
-rw-r--r--services/core/java/com/android/server/tv/tunerresourcemanager/FrontendResource.java12
-rw-r--r--services/core/java/com/android/server/tv/tunerresourcemanager/LnbResource.java3
-rw-r--r--services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceBasic.java8
-rw-r--r--services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java177
-rw-r--r--services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java102
19 files changed, 270 insertions, 262 deletions
diff --git a/media/java/android/media/MediaCas.java b/media/java/android/media/MediaCas.java
index 8b04644a2989..b022ea11d848 100644
--- a/media/java/android/media/MediaCas.java
+++ b/media/java/android/media/MediaCas.java
@@ -134,7 +134,7 @@ public final class MediaCas implements AutoCloseable {
private int mCasSystemId;
private int mUserId;
private TunerResourceManager mTunerResourceManager = null;
- private final Map<Session, Integer> mSessionMap = new HashMap<>();
+ private final Map<Session, Long> mSessionMap = new HashMap<>();
/**
* Scrambling modes used to open cas sessions.
@@ -1150,10 +1150,10 @@ public final class MediaCas implements AutoCloseable {
}
}
- private int getSessionResourceHandle() throws MediaCasException {
+ private long getSessionResourceHandle() throws MediaCasException {
validateInternalStates();
- int[] sessionResourceHandle = new int[1];
+ long[] sessionResourceHandle = new long[1];
sessionResourceHandle[0] = -1;
if (mTunerResourceManager != null) {
CasSessionRequest casSessionRequest = new CasSessionRequest();
@@ -1168,8 +1168,7 @@ public final class MediaCas implements AutoCloseable {
return sessionResourceHandle[0];
}
- private void addSessionToResourceMap(Session session, int sessionResourceHandle) {
-
+ private void addSessionToResourceMap(Session session, long sessionResourceHandle) {
if (sessionResourceHandle != TunerResourceManager.INVALID_RESOURCE_HANDLE) {
synchronized (mSessionMap) {
mSessionMap.put(session, sessionResourceHandle);
@@ -1202,13 +1201,14 @@ public final class MediaCas implements AutoCloseable {
* @throws MediaCasStateException for CAS-specific state exceptions.
*/
public Session openSession() throws MediaCasException {
- int sessionResourceHandle = getSessionResourceHandle();
+ long sessionResourceHandle = getSessionResourceHandle();
try {
if (mICas != null) {
try {
byte[] sessionId = mICas.openSessionDefault();
Session session = createFromSessionId(sessionId);
+ addSessionToResourceMap(session, sessionResourceHandle);
Log.d(TAG, "Write Stats Log for succeed to Open Session.");
FrameworkStatsLog.write(
FrameworkStatsLog.TV_CAS_SESSION_OPEN_STATUS,
@@ -1262,7 +1262,7 @@ public final class MediaCas implements AutoCloseable {
@Nullable
public Session openSession(@SessionUsage int sessionUsage, @ScramblingMode int scramblingMode)
throws MediaCasException {
- int sessionResourceHandle = getSessionResourceHandle();
+ long sessionResourceHandle = getSessionResourceHandle();
if (mICas != null) {
try {
diff --git a/media/java/android/media/tv/tuner/Tuner.java b/media/java/android/media/tv/tuner/Tuner.java
index 92f6eaf33c88..cdf50ec963d8 100644
--- a/media/java/android/media/tv/tuner/Tuner.java
+++ b/media/java/android/media/tv/tuner/Tuner.java
@@ -295,13 +295,13 @@ public class Tuner implements AutoCloseable {
private EventHandler mHandler;
@Nullable
private FrontendInfo mFrontendInfo;
- private Integer mFrontendHandle;
+ private Long mFrontendHandle;
private Tuner mFeOwnerTuner = null;
private int mFrontendType = FrontendSettings.TYPE_UNDEFINED;
private Integer mDesiredFrontendId = null;
private int mUserId;
private Lnb mLnb;
- private Integer mLnbHandle;
+ private Long mLnbHandle;
@Nullable
private OnTuneEventListener mOnTuneEventListener;
@Nullable
@@ -324,10 +324,10 @@ public class Tuner implements AutoCloseable {
private final ReentrantLock mDemuxLock = new ReentrantLock();
private int mRequestedCiCamId;
- private Integer mDemuxHandle;
- private Integer mFrontendCiCamHandle;
+ private Long mDemuxHandle;
+ private Long mFrontendCiCamHandle;
private Integer mFrontendCiCamId;
- private Map<Integer, WeakReference<Descrambler>> mDescramblers = new HashMap<>();
+ private Map<Long, WeakReference<Descrambler>> mDescramblers = new HashMap<>();
private List<WeakReference<Filter>> mFilters = new ArrayList<WeakReference<Filter>>();
private final TunerResourceManager.ResourcesReclaimListener mResourceListener =
@@ -949,7 +949,7 @@ public class Tuner implements AutoCloseable {
private void releaseDescramblers() {
synchronized (mDescramblers) {
if (!mDescramblers.isEmpty()) {
- for (Map.Entry<Integer, WeakReference<Descrambler>> d : mDescramblers.entrySet()) {
+ for (Map.Entry<Long, WeakReference<Descrambler>> d : mDescramblers.entrySet()) {
Descrambler descrambler = d.getValue().get();
if (descrambler != null) {
descrambler.close();
@@ -1010,7 +1010,7 @@ public class Tuner implements AutoCloseable {
/**
* Native method to open frontend of the given ID.
*/
- private native Frontend nativeOpenFrontendByHandle(int handle);
+ private native Frontend nativeOpenFrontendByHandle(long handle);
private native int nativeShareFrontend(int id);
private native int nativeUnshareFrontend();
private native void nativeRegisterFeCbListener(long nativeContext);
@@ -1039,21 +1039,21 @@ public class Tuner implements AutoCloseable {
private native int nativeSetMaxNumberOfFrontends(int frontendType, int maxNumber);
private native int nativeGetMaxNumberOfFrontends(int frontendType);
private native int nativeRemoveOutputPid(int pid);
- private native Lnb nativeOpenLnbByHandle(int handle);
+ private native Lnb nativeOpenLnbByHandle(long handle);
private native Lnb nativeOpenLnbByName(String name);
private native FrontendStatusReadiness[] nativeGetFrontendStatusReadiness(int[] statusTypes);
- private native Descrambler nativeOpenDescramblerByHandle(int handle);
- private native int nativeOpenDemuxByhandle(int handle);
+ private native Descrambler nativeOpenDescramblerByHandle(long handle);
+ private native int nativeOpenDemuxByhandle(long handle);
private native DvrRecorder nativeOpenDvrRecorder(long bufferSize);
private native DvrPlayback nativeOpenDvrPlayback(long bufferSize);
private native DemuxCapabilities nativeGetDemuxCapabilities();
- private native DemuxInfo nativeGetDemuxInfo(int demuxHandle);
+ private native DemuxInfo nativeGetDemuxInfo(long demuxHandle);
- private native int nativeCloseDemux(int handle);
- private native int nativeCloseFrontend(int handle);
+ private native int nativeCloseDemux(long handle);
+ private native int nativeCloseFrontend(long handle);
private native int nativeClose();
private static native SharedFilter nativeOpenSharedFilter(String token);
@@ -1371,7 +1371,7 @@ public class Tuner implements AutoCloseable {
}
private boolean requestFrontend() {
- int[] feHandle = new int[1];
+ long[] feHandle = new long[1];
boolean granted = false;
try {
TunerFrontendRequest request = new TunerFrontendRequest();
@@ -2379,7 +2379,7 @@ public class Tuner implements AutoCloseable {
}
private boolean requestLnb() {
- int[] lnbHandle = new int[1];
+ long[] lnbHandle = new long[1];
TunerLnbRequest request = new TunerLnbRequest();
request.clientId = mClientId;
boolean granted = mTunerResourceManager.requestLnb(request, lnbHandle);
@@ -2709,7 +2709,7 @@ public class Tuner implements AutoCloseable {
}
private boolean requestDemux() {
- int[] demuxHandle = new int[1];
+ long[] demuxHandle = new long[1];
TunerDemuxRequest request = new TunerDemuxRequest();
request.clientId = mClientId;
request.desiredFilterTypes = mDesiredDemuxInfo.getFilterTypes();
@@ -2722,14 +2722,14 @@ public class Tuner implements AutoCloseable {
}
private Descrambler requestDescrambler() {
- int[] descramblerHandle = new int[1];
+ long[] descramblerHandle = new long[1];
TunerDescramblerRequest request = new TunerDescramblerRequest();
request.clientId = mClientId;
boolean granted = mTunerResourceManager.requestDescrambler(request, descramblerHandle);
if (!granted) {
return null;
}
- int handle = descramblerHandle[0];
+ long handle = descramblerHandle[0];
Descrambler descrambler = nativeOpenDescramblerByHandle(handle);
if (descrambler != null) {
synchronized (mDescramblers) {
@@ -2743,7 +2743,7 @@ public class Tuner implements AutoCloseable {
}
private boolean requestFrontendCiCam(int ciCamId) {
- int[] ciCamHandle = new int[1];
+ long[] ciCamHandle = new long[1];
TunerCiCamRequest request = new TunerCiCamRequest();
request.clientId = mClientId;
request.ciCamId = ciCamId;
diff --git a/media/java/android/media/tv/tunerresourcemanager/TunerResourceManager.java b/media/java/android/media/tv/tunerresourcemanager/TunerResourceManager.java
index d268aeba8011..bb581ebe1778 100644
--- a/media/java/android/media/tv/tunerresourcemanager/TunerResourceManager.java
+++ b/media/java/android/media/tv/tunerresourcemanager/TunerResourceManager.java
@@ -66,7 +66,7 @@ public class TunerResourceManager {
private static final String TAG = "TunerResourceManager";
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
- public static final int INVALID_RESOURCE_HANDLE = -1;
+ public static final long INVALID_RESOURCE_HANDLE = -1;
public static final int INVALID_OWNER_ID = -1;
/**
* Tuner resource type to help generate resource handle
@@ -275,7 +275,7 @@ public class TunerResourceManager {
* Updates the current TRM of the TunerHAL Frontend information.
*
* <p><strong>Note:</strong> This update must happen before the first
- * {@link #requestFrontend(TunerFrontendRequest, int[])} and
+ * {@link #requestFrontend(TunerFrontendRequest, long[])} and
* {@link #releaseFrontend(int, int)} call.
*
* @param infos an array of the available {@link TunerFrontendInfo} information.
@@ -331,7 +331,7 @@ public class TunerResourceManager {
*
* @param lnbIds ids of the updating lnbs.
*/
- public void setLnbInfoList(int[] lnbIds) {
+ public void setLnbInfoList(long[] lnbIds) {
try {
mService.setLnbInfoList(lnbIds);
} catch (RemoteException e) {
@@ -406,8 +406,8 @@ public class TunerResourceManager {
*
* @return true if there is frontend granted.
*/
- public boolean requestFrontend(@NonNull TunerFrontendRequest request,
- @Nullable int[] frontendHandle) {
+ public boolean requestFrontend(
+ @NonNull TunerFrontendRequest request, @Nullable long[] frontendHandle) {
boolean result = false;
try {
result = mService.requestFrontend(request, frontendHandle);
@@ -511,7 +511,7 @@ public class TunerResourceManager {
*
* @return true if there is Demux granted.
*/
- public boolean requestDemux(@NonNull TunerDemuxRequest request, @NonNull int[] demuxHandle) {
+ public boolean requestDemux(@NonNull TunerDemuxRequest request, @NonNull long[] demuxHandle) {
boolean result = false;
try {
result = mService.requestDemux(request, demuxHandle);
@@ -544,8 +544,8 @@ public class TunerResourceManager {
*
* @return true if there is Descrambler granted.
*/
- public boolean requestDescrambler(@NonNull TunerDescramblerRequest request,
- @NonNull int[] descramblerHandle) {
+ public boolean requestDescrambler(
+ @NonNull TunerDescramblerRequest request, @NonNull long[] descramblerHandle) {
boolean result = false;
try {
result = mService.requestDescrambler(request, descramblerHandle);
@@ -577,8 +577,8 @@ public class TunerResourceManager {
*
* @return true if there is CAS session granted.
*/
- public boolean requestCasSession(@NonNull CasSessionRequest request,
- @NonNull int[] casSessionHandle) {
+ public boolean requestCasSession(
+ @NonNull CasSessionRequest request, @NonNull long[] casSessionHandle) {
boolean result = false;
try {
result = mService.requestCasSession(request, casSessionHandle);
@@ -610,7 +610,7 @@ public class TunerResourceManager {
*
* @return true if there is ciCam granted.
*/
- public boolean requestCiCam(TunerCiCamRequest request, int[] ciCamHandle) {
+ public boolean requestCiCam(TunerCiCamRequest request, long[] ciCamHandle) {
boolean result = false;
try {
result = mService.requestCiCam(request, ciCamHandle);
@@ -635,7 +635,7 @@ public class TunerResourceManager {
* <li>If no Lnb system can be granted, the API would return false.
* <ul>
*
- * <p><strong>Note:</strong> {@link #setLnbInfoList(int[])} must be called before this request.
+ * <p><strong>Note:</strong> {@link #setLnbInfoList(long[])} must be called before this request.
*
* @param request {@link TunerLnbRequest} information of the current request.
* @param lnbHandle a one-element array to return the granted Lnb handle.
@@ -643,7 +643,7 @@ public class TunerResourceManager {
*
* @return true if there is Lnb granted.
*/
- public boolean requestLnb(@NonNull TunerLnbRequest request, @NonNull int[] lnbHandle) {
+ public boolean requestLnb(@NonNull TunerLnbRequest request, @NonNull long[] lnbHandle) {
boolean result = false;
try {
result = mService.requestLnb(request, lnbHandle);
@@ -664,7 +664,7 @@ public class TunerResourceManager {
* @param frontendHandle the handle of the released frontend.
* @param clientId the id of the client that is releasing the frontend.
*/
- public void releaseFrontend(int frontendHandle, int clientId) {
+ public void releaseFrontend(long frontendHandle, int clientId) {
try {
mService.releaseFrontend(frontendHandle, clientId);
} catch (RemoteException e) {
@@ -680,7 +680,7 @@ public class TunerResourceManager {
* @param demuxHandle the handle of the released Tuner Demux.
* @param clientId the id of the client that is releasing the demux.
*/
- public void releaseDemux(int demuxHandle, int clientId) {
+ public void releaseDemux(long demuxHandle, int clientId) {
try {
mService.releaseDemux(demuxHandle, clientId);
} catch (RemoteException e) {
@@ -696,7 +696,7 @@ public class TunerResourceManager {
* @param descramblerHandle the handle of the released Tuner Descrambler.
* @param clientId the id of the client that is releasing the descrambler.
*/
- public void releaseDescrambler(int descramblerHandle, int clientId) {
+ public void releaseDescrambler(long descramblerHandle, int clientId) {
try {
mService.releaseDescrambler(descramblerHandle, clientId);
} catch (RemoteException e) {
@@ -715,7 +715,7 @@ public class TunerResourceManager {
* @param casSessionHandle the handle of the released CAS session.
* @param clientId the id of the client that is releasing the cas session.
*/
- public void releaseCasSession(int casSessionHandle, int clientId) {
+ public void releaseCasSession(long casSessionHandle, int clientId) {
try {
mService.releaseCasSession(casSessionHandle, clientId);
} catch (RemoteException e) {
@@ -734,7 +734,7 @@ public class TunerResourceManager {
* @param ciCamHandle the handle of the releasing CiCam.
* @param clientId the id of the client that is releasing the CiCam.
*/
- public void releaseCiCam(int ciCamHandle, int clientId) {
+ public void releaseCiCam(long ciCamHandle, int clientId) {
try {
mService.releaseCiCam(ciCamHandle, clientId);
} catch (RemoteException e) {
@@ -747,12 +747,12 @@ public class TunerResourceManager {
*
* <p>Client must call this whenever it releases an Lnb.
*
- * <p><strong>Note:</strong> {@link #setLnbInfoList(int[])} must be called before this release.
+ * <p><strong>Note:</strong> {@link #setLnbInfoList(long[])} must be called before this release.
*
* @param lnbHandle the handle of the released Tuner Lnb.
* @param clientId the id of the client that is releasing the lnb.
*/
- public void releaseLnb(int lnbHandle, int clientId) {
+ public void releaseLnb(long lnbHandle, int clientId) {
try {
mService.releaseLnb(lnbHandle, clientId);
} catch (RemoteException e) {
diff --git a/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/ITunerResourceManager.aidl b/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/ITunerResourceManager.aidl
index 539969762a82..109c791c1748 100644
--- a/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/ITunerResourceManager.aidl
+++ b/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/ITunerResourceManager.aidl
@@ -149,7 +149,7 @@ interface ITunerResourceManager {
*
* @param lnbIds ids of the updating lnbs.
*/
- void setLnbInfoList(in int[] lnbIds);
+ void setLnbInfoList(in long[] lnbIds);
/*
* This API is used by the Tuner framework to request a frontend from the TunerHAL.
@@ -185,7 +185,7 @@ interface ITunerResourceManager {
*
* @return true if there is frontend granted.
*/
- boolean requestFrontend(in TunerFrontendRequest request, out int[] frontendHandle);
+ boolean requestFrontend(in TunerFrontendRequest request, out long[] frontendHandle);
/*
* Sets the maximum usable frontends number of a given frontend type. It is used to enable or
@@ -253,7 +253,7 @@ interface ITunerResourceManager {
*
* @return true if there is demux granted.
*/
- boolean requestDemux(in TunerDemuxRequest request, out int[] demuxHandle);
+ boolean requestDemux(in TunerDemuxRequest request, out long[] demuxHandle);
/*
* This API is used by the Tuner framework to request an available descrambler from the
@@ -277,7 +277,7 @@ interface ITunerResourceManager {
*
* @return true if there is Descrambler granted.
*/
- boolean requestDescrambler(in TunerDescramblerRequest request, out int[] descramblerHandle);
+ boolean requestDescrambler(in TunerDescramblerRequest request, out long[] descramblerHandle);
/*
* This API is used by the Tuner framework to request an available Cas session. This session
@@ -303,7 +303,7 @@ interface ITunerResourceManager {
*
* @return true if there is CAS session granted.
*/
- boolean requestCasSession(in CasSessionRequest request, out int[] casSessionHandle);
+ boolean requestCasSession(in CasSessionRequest request, out long[] casSessionHandle);
/*
* This API is used by the Tuner framework to request an available CuCam.
@@ -328,7 +328,7 @@ interface ITunerResourceManager {
*
* @return true if there is CiCam granted.
*/
- boolean requestCiCam(in TunerCiCamRequest request, out int[] ciCamHandle);
+ boolean requestCiCam(in TunerCiCamRequest request, out long[] ciCamHandle);
/*
* This API is used by the Tuner framework to request an available Lnb from the TunerHAL.
@@ -352,7 +352,7 @@ interface ITunerResourceManager {
*
* @return true if there is Lnb granted.
*/
- boolean requestLnb(in TunerLnbRequest request, out int[] lnbHandle);
+ boolean requestLnb(in TunerLnbRequest request, out long[] lnbHandle);
/*
* Notifies the TRM that the given frontend has been released.
@@ -365,7 +365,7 @@ interface ITunerResourceManager {
* @param frontendHandle the handle of the released frontend.
* @param clientId the id of the client that is releasing the frontend.
*/
- void releaseFrontend(in int frontendHandle, int clientId);
+ void releaseFrontend(in long frontendHandle, int clientId);
/*
* Notifies the TRM that the Demux with the given handle was released.
@@ -375,7 +375,7 @@ interface ITunerResourceManager {
* @param demuxHandle the handle of the released Tuner Demux.
* @param clientId the id of the client that is releasing the demux.
*/
- void releaseDemux(in int demuxHandle, int clientId);
+ void releaseDemux(in long demuxHandle, int clientId);
/*
* Notifies the TRM that the Descrambler with the given handle was released.
@@ -385,7 +385,7 @@ interface ITunerResourceManager {
* @param descramblerHandle the handle of the released Tuner Descrambler.
* @param clientId the id of the client that is releasing the descrambler.
*/
- void releaseDescrambler(in int descramblerHandle, int clientId);
+ void releaseDescrambler(in long descramblerHandle, int clientId);
/*
* Notifies the TRM that the given Cas session has been released.
@@ -397,7 +397,7 @@ interface ITunerResourceManager {
* @param casSessionHandle the handle of the released CAS session.
* @param clientId the id of the client that is releasing the cas session.
*/
- void releaseCasSession(in int casSessionHandle, int clientId);
+ void releaseCasSession(in long casSessionHandle, int clientId);
/**
* Notifies the TRM that the given CiCam has been released.
@@ -410,7 +410,7 @@ interface ITunerResourceManager {
* @param ciCamHandle the handle of the releasing CiCam.
* @param clientId the id of the client that is releasing the CiCam.
*/
- void releaseCiCam(in int ciCamHandle, int clientId);
+ void releaseCiCam(in long ciCamHandle, int clientId);
/*
* Notifies the TRM that the Lnb with the given handle was released.
@@ -422,7 +422,7 @@ interface ITunerResourceManager {
* @param lnbHandle the handle of the released Tuner Lnb.
* @param clientId the id of the client that is releasing the lnb.
*/
- void releaseLnb(in int lnbHandle, int clientId);
+ void releaseLnb(in long lnbHandle, int clientId);
/*
* Compare two clients' priority.
diff --git a/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerDemuxInfo.aidl b/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerDemuxInfo.aidl
index c14caf50fa14..7984c38d33ab 100644
--- a/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerDemuxInfo.aidl
+++ b/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerDemuxInfo.aidl
@@ -26,7 +26,7 @@ parcelable TunerDemuxInfo {
/**
* Demux handle
*/
- int handle;
+ long handle;
/**
* Supported filter types (defined in {@link android.media.tv.tuner.filter.Filter})
diff --git a/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerFrontendInfo.aidl b/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerFrontendInfo.aidl
index 8981ce00d509..274367e9aeb6 100644
--- a/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerFrontendInfo.aidl
+++ b/media/java/android/media/tv/tunerresourcemanager/aidl/android/media/tv/tunerresourcemanager/TunerFrontendInfo.aidl
@@ -26,7 +26,7 @@ parcelable TunerFrontendInfo {
/**
* Frontend Handle
*/
- int handle;
+ long handle;
/**
* Frontend Type
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp
index 49e794116011..f6f84dd57c3f 100644
--- a/media/jni/android_media_tv_Tuner.cpp
+++ b/media/jni/android_media_tv_Tuner.cpp
@@ -1452,7 +1452,7 @@ jobject JTuner::getFrontendIds() {
return obj;
}
-jobject JTuner::openFrontendByHandle(int feHandle) {
+jobject JTuner::openFrontendByHandle(jlong feHandle) {
// TODO: Handle reopening frontend with different handle
sp<FrontendClient> feClient = sTunerClient->openFrontend(feHandle);
if (feClient == nullptr) {
@@ -1828,7 +1828,7 @@ jobjectArray JTuner::getFrontendStatusReadiness(jintArray types) {
return valObj;
}
-jobject JTuner::openLnbByHandle(int handle) {
+jobject JTuner::openLnbByHandle(jlong handle) {
if (sTunerClient == nullptr) {
return nullptr;
}
@@ -1837,7 +1837,7 @@ jobject JTuner::openLnbByHandle(int handle) {
sp<LnbClientCallbackImpl> callback = new LnbClientCallbackImpl();
lnbClient = sTunerClient->openLnb(handle);
if (lnbClient == nullptr) {
- ALOGD("Failed to open lnb, handle = %d", handle);
+ ALOGD("Failed to open lnb, handle = %ld", handle);
return nullptr;
}
@@ -1951,7 +1951,7 @@ int JTuner::setLna(bool enable) {
return (int)result;
}
-Result JTuner::openDemux(int handle) {
+Result JTuner::openDemux(jlong handle) {
if (sTunerClient == nullptr) {
return Result::NOT_INITIALIZED;
}
@@ -2219,7 +2219,7 @@ jobject JTuner::getDemuxCaps() {
numBytesInSectionFilter, filterCaps, filterCapsList, linkCaps, bTimeFilter);
}
-jobject JTuner::getDemuxInfo(int handle) {
+jobject JTuner::getDemuxInfo(jlong handle) {
if (sTunerClient == nullptr) {
ALOGE("tuner is not initialized");
return nullptr;
@@ -3772,8 +3772,8 @@ static jobject android_media_tv_Tuner_get_frontend_ids(JNIEnv *env, jobject thiz
return tuner->getFrontendIds();
}
-static jobject android_media_tv_Tuner_open_frontend_by_handle(
- JNIEnv *env, jobject thiz, jint handle) {
+static jobject android_media_tv_Tuner_open_frontend_by_handle(JNIEnv *env, jobject thiz,
+ jlong handle) {
sp<JTuner> tuner = getTuner(env, thiz);
return tuner->openFrontendByHandle(handle);
}
@@ -3905,7 +3905,7 @@ static jobject android_media_tv_Tuner_get_frontend_info(JNIEnv *env, jobject thi
return tuner->getFrontendInfo(id);
}
-static jobject android_media_tv_Tuner_open_lnb_by_handle(JNIEnv *env, jobject thiz, jint handle) {
+static jobject android_media_tv_Tuner_open_lnb_by_handle(JNIEnv *env, jobject thiz, jlong handle) {
sp<JTuner> tuner = getTuner(env, thiz);
return tuner->openLnbByHandle(handle);
}
@@ -4626,7 +4626,7 @@ static int android_media_tv_Tuner_time_filter_close(JNIEnv *env, jobject filter)
return (int)r;
}
-static jobject android_media_tv_Tuner_open_descrambler(JNIEnv *env, jobject thiz, jint) {
+static jobject android_media_tv_Tuner_open_descrambler(JNIEnv *env, jobject thiz, jlong) {
sp<JTuner> tuner = getTuner(env, thiz);
return tuner->openDescrambler();
}
@@ -4694,12 +4694,12 @@ static jobject android_media_tv_Tuner_get_demux_caps(JNIEnv* env, jobject thiz)
return tuner->getDemuxCaps();
}
-static jobject android_media_tv_Tuner_get_demux_info(JNIEnv* env, jobject thiz, jint handle) {
+static jobject android_media_tv_Tuner_get_demux_info(JNIEnv *env, jobject thiz, jlong handle) {
sp<JTuner> tuner = getTuner(env, thiz);
return tuner->getDemuxInfo(handle);
}
-static jint android_media_tv_Tuner_open_demux(JNIEnv* env, jobject thiz, jint handle) {
+static jint android_media_tv_Tuner_open_demux(JNIEnv *env, jobject thiz, jlong handle) {
sp<JTuner> tuner = getTuner(env, thiz);
return (jint)tuner->openDemux(handle);
}
@@ -4710,7 +4710,7 @@ static jint android_media_tv_Tuner_close_tuner(JNIEnv* env, jobject thiz) {
return (jint)tuner->close();
}
-static jint android_media_tv_Tuner_close_demux(JNIEnv* env, jobject thiz, jint /* handle */) {
+static jint android_media_tv_Tuner_close_demux(JNIEnv *env, jobject thiz, jlong /* handle */) {
sp<JTuner> tuner = getTuner(env, thiz);
return tuner->closeDemux();
}
@@ -4770,7 +4770,7 @@ static jobjectArray android_media_tv_Tuner_get_frontend_status_readiness(JNIEnv
return tuner->getFrontendStatusReadiness(types);
}
-static jint android_media_tv_Tuner_close_frontend(JNIEnv* env, jobject thiz, jint /* handle */) {
+static jint android_media_tv_Tuner_close_frontend(JNIEnv *env, jobject thiz, jlong /* handle */) {
sp<JTuner> tuner = getTuner(env, thiz);
return tuner->closeFrontend();
}
@@ -5039,7 +5039,7 @@ static const JNINativeMethod gTunerMethods[] = {
{ "nativeGetTunerVersion", "()I", (void *)android_media_tv_Tuner_native_get_tuner_version },
{ "nativeGetFrontendIds", "()Ljava/util/List;",
(void *)android_media_tv_Tuner_get_frontend_ids },
- { "nativeOpenFrontendByHandle", "(I)Landroid/media/tv/tuner/Tuner$Frontend;",
+ { "nativeOpenFrontendByHandle", "(J)Landroid/media/tv/tuner/Tuner$Frontend;",
(void *)android_media_tv_Tuner_open_frontend_by_handle },
{ "nativeShareFrontend", "(I)I",
(void *)android_media_tv_Tuner_share_frontend },
@@ -5078,11 +5078,11 @@ static const JNINativeMethod gTunerMethods[] = {
(void *)android_media_tv_Tuner_open_filter },
{ "nativeOpenTimeFilter", "()Landroid/media/tv/tuner/filter/TimeFilter;",
(void *)android_media_tv_Tuner_open_time_filter },
- { "nativeOpenLnbByHandle", "(I)Landroid/media/tv/tuner/Lnb;",
+ { "nativeOpenLnbByHandle", "(J)Landroid/media/tv/tuner/Lnb;",
(void *)android_media_tv_Tuner_open_lnb_by_handle },
{ "nativeOpenLnbByName", "(Ljava/lang/String;)Landroid/media/tv/tuner/Lnb;",
(void *)android_media_tv_Tuner_open_lnb_by_name },
- { "nativeOpenDescramblerByHandle", "(I)Landroid/media/tv/tuner/Descrambler;",
+ { "nativeOpenDescramblerByHandle", "(J)Landroid/media/tv/tuner/Descrambler;",
(void *)android_media_tv_Tuner_open_descrambler },
{ "nativeOpenDvrRecorder", "(J)Landroid/media/tv/tuner/dvr/DvrRecorder;",
(void *)android_media_tv_Tuner_open_dvr_recorder },
@@ -5090,12 +5090,12 @@ static const JNINativeMethod gTunerMethods[] = {
(void *)android_media_tv_Tuner_open_dvr_playback },
{ "nativeGetDemuxCapabilities", "()Landroid/media/tv/tuner/DemuxCapabilities;",
(void *)android_media_tv_Tuner_get_demux_caps },
- { "nativeGetDemuxInfo", "(I)Landroid/media/tv/tuner/DemuxInfo;",
+ { "nativeGetDemuxInfo", "(J)Landroid/media/tv/tuner/DemuxInfo;",
(void *)android_media_tv_Tuner_get_demux_info },
- { "nativeOpenDemuxByhandle", "(I)I", (void *)android_media_tv_Tuner_open_demux },
+ { "nativeOpenDemuxByhandle", "(J)I", (void *)android_media_tv_Tuner_open_demux },
{ "nativeClose", "()I", (void *)android_media_tv_Tuner_close_tuner },
- { "nativeCloseFrontend", "(I)I", (void *)android_media_tv_Tuner_close_frontend },
- { "nativeCloseDemux", "(I)I", (void *)android_media_tv_Tuner_close_demux },
+ { "nativeCloseFrontend", "(J)I", (void *)android_media_tv_Tuner_close_frontend },
+ { "nativeCloseDemux", "(J)I", (void *)android_media_tv_Tuner_close_demux },
{ "nativeOpenSharedFilter",
"(Ljava/lang/String;)Landroid/media/tv/tuner/filter/SharedFilter;",
(void *)android_media_tv_Tuner_open_shared_filter},
diff --git a/media/jni/android_media_tv_Tuner.h b/media/jni/android_media_tv_Tuner.h
index 3de3ab91326c..7af2cd7bd5b7 100644
--- a/media/jni/android_media_tv_Tuner.h
+++ b/media/jni/android_media_tv_Tuner.h
@@ -206,7 +206,7 @@ struct JTuner : public RefBase {
int disconnectCiCam();
int unlinkCiCam(jint id);
jobject getFrontendIds();
- jobject openFrontendByHandle(int feHandle);
+ jobject openFrontendByHandle(jlong feHandle);
int shareFrontend(int feId);
int unshareFrontend();
void registerFeCbListener(JTuner* jtuner);
@@ -221,16 +221,16 @@ struct JTuner : public RefBase {
int setLnb(sp<LnbClient> lnbClient);
bool isLnaSupported();
int setLna(bool enable);
- jobject openLnbByHandle(int handle);
+ jobject openLnbByHandle(jlong handle);
jobject openLnbByName(jstring name);
jobject openFilter(DemuxFilterType type, int bufferSize);
jobject openTimeFilter();
jobject openDescrambler();
jobject openDvr(DvrType type, jlong bufferSize);
jobject getDemuxCaps();
- jobject getDemuxInfo(int handle);
+ jobject getDemuxInfo(jlong handle);
jobject getFrontendStatus(jintArray types);
- Result openDemux(int handle);
+ Result openDemux(jlong handle);
jint close();
jint closeFrontend();
jint closeDemux();
diff --git a/media/jni/tuner/TunerClient.cpp b/media/jni/tuner/TunerClient.cpp
index ea623d97a394..0097710f5c64 100644
--- a/media/jni/tuner/TunerClient.cpp
+++ b/media/jni/tuner/TunerClient.cpp
@@ -56,7 +56,7 @@ vector<int32_t> TunerClient::getFrontendIds() {
return ids;
}
-sp<FrontendClient> TunerClient::openFrontend(int32_t frontendHandle) {
+sp<FrontendClient> TunerClient::openFrontend(int64_t frontendHandle) {
if (mTunerService != nullptr) {
shared_ptr<ITunerFrontend> tunerFrontend;
Status s = mTunerService->openFrontend(frontendHandle, &tunerFrontend);
@@ -94,7 +94,7 @@ shared_ptr<FrontendInfo> TunerClient::getFrontendInfo(int32_t id) {
return nullptr;
}
-sp<DemuxClient> TunerClient::openDemux(int32_t demuxHandle) {
+sp<DemuxClient> TunerClient::openDemux(int64_t demuxHandle) {
if (mTunerService != nullptr) {
shared_ptr<ITunerDemux> tunerDemux;
Status s = mTunerService->openDemux(demuxHandle, &tunerDemux);
@@ -107,7 +107,7 @@ sp<DemuxClient> TunerClient::openDemux(int32_t demuxHandle) {
return nullptr;
}
-shared_ptr<DemuxInfo> TunerClient::getDemuxInfo(int32_t demuxHandle) {
+shared_ptr<DemuxInfo> TunerClient::getDemuxInfo(int64_t demuxHandle) {
if (mTunerService != nullptr) {
DemuxInfo aidlDemuxInfo;
Status s = mTunerService->getDemuxInfo(demuxHandle, &aidlDemuxInfo);
@@ -141,7 +141,7 @@ shared_ptr<DemuxCapabilities> TunerClient::getDemuxCaps() {
return nullptr;
}
-sp<DescramblerClient> TunerClient::openDescrambler(int32_t descramblerHandle) {
+sp<DescramblerClient> TunerClient::openDescrambler(int64_t descramblerHandle) {
if (mTunerService != nullptr) {
shared_ptr<ITunerDescrambler> tunerDescrambler;
Status s = mTunerService->openDescrambler(descramblerHandle, &tunerDescrambler);
@@ -154,7 +154,7 @@ sp<DescramblerClient> TunerClient::openDescrambler(int32_t descramblerHandle) {
return nullptr;
}
-sp<LnbClient> TunerClient::openLnb(int32_t lnbHandle) {
+sp<LnbClient> TunerClient::openLnb(int64_t lnbHandle) {
if (mTunerService != nullptr) {
shared_ptr<ITunerLnb> tunerLnb;
Status s = mTunerService->openLnb(lnbHandle, &tunerLnb);
diff --git a/media/jni/tuner/TunerClient.h b/media/jni/tuner/TunerClient.h
index 6ab120b56d97..a348586454b8 100644
--- a/media/jni/tuner/TunerClient.h
+++ b/media/jni/tuner/TunerClient.h
@@ -65,7 +65,7 @@ public:
* @param frontendHandle the handle of the frontend granted by TRM.
* @return a newly created FrontendClient interface.
*/
- sp<FrontendClient> openFrontend(int32_t frontendHandle);
+ sp<FrontendClient> openFrontend(int64_t frontendHandle);
/**
* Retrieve the granted frontend's information.
@@ -81,7 +81,7 @@ public:
* @param demuxHandle the handle of the demux granted by TRM.
* @return a newly created DemuxClient interface.
*/
- sp<DemuxClient> openDemux(int32_t demuxHandle);
+ sp<DemuxClient> openDemux(int64_t demuxHandle);
/**
* Retrieve the DemuxInfo of a specific demux
@@ -89,7 +89,7 @@ public:
* @param demuxHandle the handle of the demux to query demux info for
* @return the demux info
*/
- shared_ptr<DemuxInfo> getDemuxInfo(int32_t demuxHandle);
+ shared_ptr<DemuxInfo> getDemuxInfo(int64_t demuxHandle);
/**
* Retrieve a list of demux info
@@ -111,7 +111,7 @@ public:
* @param descramblerHandle the handle of the descrambler granted by TRM.
* @return a newly created DescramblerClient interface.
*/
- sp<DescramblerClient> openDescrambler(int32_t descramblerHandle);
+ sp<DescramblerClient> openDescrambler(int64_t descramblerHandle);
/**
* Open a new interface of LnbClient given an lnbHandle.
@@ -119,7 +119,7 @@ public:
* @param lnbHandle the handle of the LNB granted by TRM.
* @return a newly created LnbClient interface.
*/
- sp<LnbClient> openLnb(int32_t lnbHandle);
+ sp<LnbClient> openLnb(int64_t lnbHandle);
/**
* Open a new interface of LnbClient given a LNB name.
diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/CasResource.java b/services/core/java/com/android/server/tv/tunerresourcemanager/CasResource.java
index eb5361c84b89..d1610704a6d2 100644
--- a/services/core/java/com/android/server/tv/tunerresourcemanager/CasResource.java
+++ b/services/core/java/com/android/server/tv/tunerresourcemanager/CasResource.java
@@ -30,7 +30,7 @@ public class CasResource {
* Handle of the current resource. Should not be changed and should be aligned with the driver
* level implementation.
*/
- final int mHandle;
+ final long mHandle;
private final int mSystemId;
@@ -50,7 +50,7 @@ public class CasResource {
this.mAvailableSessionNum = builder.mMaxSessionNum;
}
- public int getHandle() {
+ public long getHandle() {
return mHandle;
}
@@ -146,11 +146,11 @@ public class CasResource {
*/
public static class Builder {
- private final int mHandle;
+ private final long mHandle;
private int mSystemId;
protected int mMaxSessionNum;
- Builder(int handle, int systemId) {
+ Builder(long handle, int systemId) {
this.mHandle = handle;
this.mSystemId = systemId;
}
diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/CiCamResource.java b/services/core/java/com/android/server/tv/tunerresourcemanager/CiCamResource.java
index 5cef729627f0..b325570e35ff 100644
--- a/services/core/java/com/android/server/tv/tunerresourcemanager/CiCamResource.java
+++ b/services/core/java/com/android/server/tv/tunerresourcemanager/CiCamResource.java
@@ -42,7 +42,7 @@ public final class CiCamResource extends CasResource {
* Builder class for {@link CiCamResource}.
*/
public static class Builder extends CasResource.Builder {
- Builder(int handle, int systemId) {
+ Builder(long handle, int systemId) {
super(handle, systemId);
}
diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/ClientProfile.java b/services/core/java/com/android/server/tv/tunerresourcemanager/ClientProfile.java
index 8e375275d080..096231910e6e 100644
--- a/services/core/java/com/android/server/tv/tunerresourcemanager/ClientProfile.java
+++ b/services/core/java/com/android/server/tv/tunerresourcemanager/ClientProfile.java
@@ -67,19 +67,19 @@ public final class ClientProfile {
/**
* The handle of the primary frontend resource
*/
- private int mPrimaryUsingFrontendHandle = TunerResourceManager.INVALID_RESOURCE_HANDLE;
+ private long mPrimaryUsingFrontendHandle = TunerResourceManager.INVALID_RESOURCE_HANDLE;
/**
* List of the frontend handles that are used by the current client.
*/
- private Set<Integer> mUsingFrontendHandles = new HashSet<>();
+ private Set<Long> mUsingFrontendHandles = new HashSet<>();
/**
* List of the client ids that share frontend with the current client.
*/
private Set<Integer> mShareFeClientIds = new HashSet<>();
- private Set<Integer> mUsingDemuxHandles = new HashSet<>();
+ private Set<Long> mUsingDemuxHandles = new HashSet<>();
/**
* Client id sharee that has shared frontend with the current client.
@@ -89,7 +89,7 @@ public final class ClientProfile {
/**
* List of the Lnb handles that are used by the current client.
*/
- private Set<Integer> mUsingLnbHandles = new HashSet<>();
+ private Set<Long> mUsingLnbHandles = new HashSet<>();
/**
* List of the Cas system ids that are used by the current client.
@@ -184,7 +184,7 @@ public final class ClientProfile {
*
* @param frontendHandle being used.
*/
- public void useFrontend(int frontendHandle) {
+ public void useFrontend(long frontendHandle) {
mUsingFrontendHandles.add(frontendHandle);
}
@@ -193,14 +193,14 @@ public final class ClientProfile {
*
* @param frontendHandle being used.
*/
- public void setPrimaryFrontend(int frontendHandle) {
+ public void setPrimaryFrontend(long frontendHandle) {
mPrimaryUsingFrontendHandle = frontendHandle;
}
/**
* Get the primary frontend used by the client
*/
- public int getPrimaryFrontend() {
+ public long getPrimaryFrontend() {
return mPrimaryUsingFrontendHandle;
}
@@ -222,7 +222,7 @@ public final class ClientProfile {
mShareFeClientIds.remove(clientId);
}
- public Set<Integer> getInUseFrontendHandles() {
+ public Set<Long> getInUseFrontendHandles() {
return mUsingFrontendHandles;
}
@@ -253,14 +253,14 @@ public final class ClientProfile {
*
* @param demuxHandle the demux being used.
*/
- public void useDemux(int demuxHandle) {
+ public void useDemux(long demuxHandle) {
mUsingDemuxHandles.add(demuxHandle);
}
/**
* Get the set of demux handles in use.
*/
- public Set<Integer> getInUseDemuxHandles() {
+ public Set<Long> getInUseDemuxHandles() {
return mUsingDemuxHandles;
}
@@ -269,7 +269,7 @@ public final class ClientProfile {
*
* @param demuxHandle the demux handl being released.
*/
- public void releaseDemux(int demuxHandle) {
+ public void releaseDemux(long demuxHandle) {
mUsingDemuxHandles.remove(demuxHandle);
}
@@ -278,11 +278,11 @@ public final class ClientProfile {
*
* @param lnbHandle being used.
*/
- public void useLnb(int lnbHandle) {
+ public void useLnb(long lnbHandle) {
mUsingLnbHandles.add(lnbHandle);
}
- public Set<Integer> getInUseLnbHandles() {
+ public Set<Long> getInUseLnbHandles() {
return mUsingLnbHandles;
}
@@ -291,7 +291,7 @@ public final class ClientProfile {
*
* @param lnbHandle being released.
*/
- public void releaseLnb(int lnbHandle) {
+ public void releaseLnb(long lnbHandle) {
mUsingLnbHandles.remove(lnbHandle);
}
diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/DemuxResource.java b/services/core/java/com/android/server/tv/tunerresourcemanager/DemuxResource.java
index df735659c0fe..14bc216d03ef 100644
--- a/services/core/java/com/android/server/tv/tunerresourcemanager/DemuxResource.java
+++ b/services/core/java/com/android/server/tv/tunerresourcemanager/DemuxResource.java
@@ -69,7 +69,7 @@ public final class DemuxResource extends TunerResourceBasic {
public static class Builder extends TunerResourceBasic.Builder {
private int mFilterTypes;
- Builder(int handle) {
+ Builder(long handle) {
super(handle);
}
diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/FrontendResource.java b/services/core/java/com/android/server/tv/tunerresourcemanager/FrontendResource.java
index 7ef75e3120c5..953d97499c41 100644
--- a/services/core/java/com/android/server/tv/tunerresourcemanager/FrontendResource.java
+++ b/services/core/java/com/android/server/tv/tunerresourcemanager/FrontendResource.java
@@ -42,7 +42,7 @@ public final class FrontendResource extends TunerResourceBasic {
/**
* An array to save all the FE handles under the same exclisive group.
*/
- private Set<Integer> mExclusiveGroupMemberHandles = new HashSet<>();
+ private Set<Long> mExclusiveGroupMemberHandles = new HashSet<>();
private FrontendResource(Builder builder) {
super(builder);
@@ -58,7 +58,7 @@ public final class FrontendResource extends TunerResourceBasic {
return mExclusiveGroupId;
}
- public Set<Integer> getExclusiveGroupMemberFeHandles() {
+ public Set<Long> getExclusiveGroupMemberFeHandles() {
return mExclusiveGroupMemberHandles;
}
@@ -67,7 +67,7 @@ public final class FrontendResource extends TunerResourceBasic {
*
* @param handle the handle to be added.
*/
- public void addExclusiveGroupMemberFeHandle(int handle) {
+ public void addExclusiveGroupMemberFeHandle(long handle) {
mExclusiveGroupMemberHandles.add(handle);
}
@@ -76,7 +76,7 @@ public final class FrontendResource extends TunerResourceBasic {
*
* @param handles the handle collection to be added.
*/
- public void addExclusiveGroupMemberFeHandles(Collection<Integer> handles) {
+ public void addExclusiveGroupMemberFeHandles(Collection<Long> handles) {
mExclusiveGroupMemberHandles.addAll(handles);
}
@@ -85,7 +85,7 @@ public final class FrontendResource extends TunerResourceBasic {
*
* @param id the id to be removed.
*/
- public void removeExclusiveGroupMemberFeId(int handle) {
+ public void removeExclusiveGroupMemberFeId(long handle) {
mExclusiveGroupMemberHandles.remove(handle);
}
@@ -104,7 +104,7 @@ public final class FrontendResource extends TunerResourceBasic {
@Type private int mType;
private int mExclusiveGroupId;
- Builder(int handle) {
+ Builder(long handle) {
super(handle);
}
diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/LnbResource.java b/services/core/java/com/android/server/tv/tunerresourcemanager/LnbResource.java
index 41cacea5f09e..ab283713b15a 100644
--- a/services/core/java/com/android/server/tv/tunerresourcemanager/LnbResource.java
+++ b/services/core/java/com/android/server/tv/tunerresourcemanager/LnbResource.java
@@ -37,8 +37,7 @@ public final class LnbResource extends TunerResourceBasic {
* Builder class for {@link LnbResource}.
*/
public static class Builder extends TunerResourceBasic.Builder {
-
- Builder(int handle) {
+ Builder(long handle) {
super(handle);
}
diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceBasic.java b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceBasic.java
index 07853fc69055..d2ff8fa7c2e8 100644
--- a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceBasic.java
+++ b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceBasic.java
@@ -28,7 +28,7 @@ public class TunerResourceBasic {
* Handle of the current resource. Should not be changed and should be aligned with the driver
* level implementation.
*/
- final int mHandle;
+ final long mHandle;
/**
* If the current resource is in use.
@@ -44,7 +44,7 @@ public class TunerResourceBasic {
this.mHandle = builder.mHandle;
}
- public int getHandle() {
+ public long getHandle() {
return mHandle;
}
@@ -78,9 +78,9 @@ public class TunerResourceBasic {
* Builder class for {@link TunerResourceBasic}.
*/
public static class Builder {
- private final int mHandle;
+ private final long mHandle;
- Builder(int handle) {
+ Builder(long handle) {
this.mHandle = handle;
}
diff --git a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java
index 9229f7f016bc..c5b6bbf30ae1 100644
--- a/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java
+++ b/services/core/java/com/android/server/tv/tunerresourcemanager/TunerResourceManagerService.java
@@ -78,12 +78,18 @@ public class TunerResourceManagerService extends SystemService implements IBinde
private static final int INVALID_FE_COUNT = -1;
+ private static final int RESOURCE_ID_SHIFT = 24;
+ private static final int RESOURCE_TYPE_SHIFT = 56;
+ private static final long RESOURCE_COUNT_MASK = 0xffffff;
+ private static final long RESOURCE_ID_MASK = 0xffffffff;
+ private static final long RESOURCE_TYPE_MASK = 0xff;
+
// Map of the registered client profiles
private Map<Integer, ClientProfile> mClientProfiles = new HashMap<>();
private int mNextUnusedClientId = 0;
// Map of the current available frontend resources
- private Map<Integer, FrontendResource> mFrontendResources = new HashMap<>();
+ private Map<Long, FrontendResource> mFrontendResources = new HashMap<>();
// SparseIntArray of the max usable number for each frontend resource type
private SparseIntArray mFrontendMaxUsableNums = new SparseIntArray();
// SparseIntArray of the currently used number for each frontend resource type
@@ -93,15 +99,15 @@ public class TunerResourceManagerService extends SystemService implements IBinde
// Backups for the frontend resource maps for enabling testing with custom resource maps
// such as TunerTest.testHasUnusedFrontend1()
- private Map<Integer, FrontendResource> mFrontendResourcesBackup = new HashMap<>();
+ private Map<Long, FrontendResource> mFrontendResourcesBackup = new HashMap<>();
private SparseIntArray mFrontendMaxUsableNumsBackup = new SparseIntArray();
private SparseIntArray mFrontendUsedNumsBackup = new SparseIntArray();
private SparseIntArray mFrontendExistingNumsBackup = new SparseIntArray();
// Map of the current available demux resources
- private Map<Integer, DemuxResource> mDemuxResources = new HashMap<>();
+ private Map<Long, DemuxResource> mDemuxResources = new HashMap<>();
// Map of the current available lnb resources
- private Map<Integer, LnbResource> mLnbResources = new HashMap<>();
+ private Map<Long, LnbResource> mLnbResources = new HashMap<>();
// Map of the current available Cas resources
private Map<Integer, CasResource> mCasResources = new HashMap<>();
// Map of the current available CiCam resources
@@ -266,7 +272,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@Override
- public void setLnbInfoList(int[] lnbHandles) throws RemoteException {
+ public void setLnbInfoList(long[] lnbHandles) throws RemoteException {
enforceTrmAccessPermission("setLnbInfoList");
if (lnbHandles == null) {
throw new RemoteException("Lnb handle list can't be null");
@@ -277,8 +283,8 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@Override
- public boolean requestFrontend(@NonNull TunerFrontendRequest request,
- @NonNull int[] frontendHandle) {
+ public boolean requestFrontend(
+ @NonNull TunerFrontendRequest request, @NonNull long[] frontendHandle) {
enforceTunerAccessPermission("requestFrontend");
enforceTrmAccessPermission("requestFrontend");
if (frontendHandle == null) {
@@ -350,8 +356,8 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@Override
- public boolean requestDemux(@NonNull TunerDemuxRequest request,
- @NonNull int[] demuxHandle) throws RemoteException {
+ public boolean requestDemux(@NonNull TunerDemuxRequest request, @NonNull long[] demuxHandle)
+ throws RemoteException {
enforceTunerAccessPermission("requestDemux");
enforceTrmAccessPermission("requestDemux");
if (demuxHandle == null) {
@@ -362,7 +368,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
@Override
public boolean requestDescrambler(@NonNull TunerDescramblerRequest request,
- @NonNull int[] descramblerHandle) throws RemoteException {
+ @NonNull long[] descramblerHandle) throws RemoteException {
enforceDescramblerAccessPermission("requestDescrambler");
enforceTrmAccessPermission("requestDescrambler");
if (descramblerHandle == null) {
@@ -379,7 +385,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
@Override
public boolean requestCasSession(@NonNull CasSessionRequest request,
- @NonNull int[] casSessionHandle) throws RemoteException {
+ @NonNull long[] casSessionHandle) throws RemoteException {
enforceTrmAccessPermission("requestCasSession");
if (casSessionHandle == null) {
throw new RemoteException("casSessionHandle can't be null");
@@ -388,8 +394,8 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@Override
- public boolean requestCiCam(@NonNull TunerCiCamRequest request,
- @NonNull int[] ciCamHandle) throws RemoteException {
+ public boolean requestCiCam(@NonNull TunerCiCamRequest request, @NonNull long[] ciCamHandle)
+ throws RemoteException {
enforceTrmAccessPermission("requestCiCam");
if (ciCamHandle == null) {
throw new RemoteException("ciCamHandle can't be null");
@@ -398,7 +404,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@Override
- public boolean requestLnb(@NonNull TunerLnbRequest request, @NonNull int[] lnbHandle)
+ public boolean requestLnb(@NonNull TunerLnbRequest request, @NonNull long[] lnbHandle)
throws RemoteException {
enforceTunerAccessPermission("requestLnb");
enforceTrmAccessPermission("requestLnb");
@@ -409,14 +415,14 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@Override
- public void releaseFrontend(int frontendHandle, int clientId) throws RemoteException {
+ public void releaseFrontend(long frontendHandle, int clientId) throws RemoteException {
enforceTunerAccessPermission("releaseFrontend");
enforceTrmAccessPermission("releaseFrontend");
releaseFrontendInternal(frontendHandle, clientId);
}
@Override
- public void releaseDemux(int demuxHandle, int clientId) throws RemoteException {
+ public void releaseDemux(long demuxHandle, int clientId) throws RemoteException {
enforceTunerAccessPermission("releaseDemux");
enforceTrmAccessPermission("releaseDemux");
if (DEBUG) {
@@ -447,7 +453,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@Override
- public void releaseDescrambler(int descramblerHandle, int clientId) {
+ public void releaseDescrambler(long descramblerHandle, int clientId) {
enforceTunerAccessPermission("releaseDescrambler");
enforceTrmAccessPermission("releaseDescrambler");
if (DEBUG) {
@@ -456,7 +462,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@Override
- public void releaseCasSession(int casSessionHandle, int clientId) throws RemoteException {
+ public void releaseCasSession(long casSessionHandle, int clientId) throws RemoteException {
enforceTrmAccessPermission("releaseCasSession");
if (!validateResourceHandle(
TunerResourceManager.TUNER_RESOURCE_TYPE_CAS_SESSION, casSessionHandle)) {
@@ -480,7 +486,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@Override
- public void releaseCiCam(int ciCamHandle, int clientId) throws RemoteException {
+ public void releaseCiCam(long ciCamHandle, int clientId) throws RemoteException {
enforceTrmAccessPermission("releaseCiCam");
if (!validateResourceHandle(
TunerResourceManager.TUNER_RESOURCE_TYPE_FRONTEND_CICAM, ciCamHandle)) {
@@ -508,7 +514,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@Override
- public void releaseLnb(int lnbHandle, int clientId) throws RemoteException {
+ public void releaseLnb(long lnbHandle, int clientId) throws RemoteException {
enforceTunerAccessPermission("releaseLnb");
enforceTrmAccessPermission("releaseLnb");
if (!validateResourceHandle(TunerResourceManager.TUNER_RESOURCE_TYPE_LNB, lnbHandle)) {
@@ -812,7 +818,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
// A set to record the frontends pending on updating. Ids will be removed
// from this set once its updating finished. Any frontend left in this set when all
// the updates are done will be removed from mFrontendResources.
- Set<Integer> updatingFrontendHandles = new HashSet<>(getFrontendResources().keySet());
+ Set<Long> updatingFrontendHandles = new HashSet<>(getFrontendResources().keySet());
// Update frontendResources map and other mappings accordingly
for (int i = 0; i < infos.length; i++) {
@@ -831,7 +837,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
}
- for (int removingHandle : updatingFrontendHandles) {
+ for (long removingHandle : updatingFrontendHandles) {
// update the exclusive group id member list
removeFrontendResource(removingHandle);
}
@@ -849,7 +855,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
// A set to record the demuxes pending on updating. Ids will be removed
// from this set once its updating finished. Any demux left in this set when all
// the updates are done will be removed from mDemuxResources.
- Set<Integer> updatingDemuxHandles = new HashSet<>(getDemuxResources().keySet());
+ Set<Long> updatingDemuxHandles = new HashSet<>(getDemuxResources().keySet());
// Update demuxResources map and other mappings accordingly
for (int i = 0; i < infos.length; i++) {
@@ -867,13 +873,13 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
}
- for (int removingHandle : updatingDemuxHandles) {
+ for (long removingHandle : updatingDemuxHandles) {
// update the exclusive group id member list
removeDemuxResource(removingHandle);
}
}
@VisibleForTesting
- protected void setLnbInfoListInternal(int[] lnbHandles) {
+ protected void setLnbInfoListInternal(long[] lnbHandles) {
if (DEBUG) {
for (int i = 0; i < lnbHandles.length; i++) {
Slog.d(TAG, "updateLnbInfo(lnbHanle=" + lnbHandles[i] + ")");
@@ -883,7 +889,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
// A set to record the Lnbs pending on updating. Handles will be removed
// from this set once its updating finished. Any lnb left in this set when all
// the updates are done will be removed from mLnbResources.
- Set<Integer> updatingLnbHandles = new HashSet<>(getLnbResources().keySet());
+ Set<Long> updatingLnbHandles = new HashSet<>(getLnbResources().keySet());
// Update lnbResources map and other mappings accordingly
for (int i = 0; i < lnbHandles.length; i++) {
@@ -899,7 +905,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
}
- for (int removingHandle : updatingLnbHandles) {
+ for (long removingHandle : updatingLnbHandles) {
removeLnbResource(removingHandle);
}
}
@@ -933,12 +939,12 @@ public class TunerResourceManagerService extends SystemService implements IBinde
return;
}
// Add the new Cas Resource.
- int casSessionHandle = generateResourceHandle(
+ long casSessionHandle = generateResourceHandle(
TunerResourceManager.TUNER_RESOURCE_TYPE_CAS_SESSION, casSystemId);
cas = new CasResource.Builder(casSessionHandle, casSystemId)
.maxSessionNum(maxSessionNum)
.build();
- int ciCamHandle = generateResourceHandle(
+ long ciCamHandle = generateResourceHandle(
TunerResourceManager.TUNER_RESOURCE_TYPE_FRONTEND_CICAM, casSystemId);
ciCam = new CiCamResource.Builder(ciCamHandle, casSystemId)
.maxSessionNum(maxSessionNum)
@@ -948,7 +954,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@VisibleForTesting
- protected boolean requestFrontendInternal(TunerFrontendRequest request, int[] frontendHandle) {
+ protected boolean requestFrontendInternal(TunerFrontendRequest request, long[] frontendHandle) {
if (DEBUG) {
Slog.d(TAG, "requestFrontend(request=" + request + ")");
}
@@ -977,7 +983,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
protected boolean claimFrontend(
TunerFrontendRequest request,
- int[] frontendHandle,
+ long[] frontendHandle,
int[] reclaimOwnerId
) {
frontendHandle[0] = TunerResourceManager.INVALID_RESOURCE_HANDLE;
@@ -1032,7 +1038,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
// currently in primary use (and simply blocked due to exclusive group)
ClientProfile targetOwnerProfile =
getClientProfile(fr.getOwnerClientId());
- int primaryFeId = targetOwnerProfile.getPrimaryFrontend();
+ long primaryFeId = targetOwnerProfile.getPrimaryFrontend();
FrontendResource primaryFe = getFrontendResource(primaryFeId);
if (fr.getType() != primaryFe.getType()
&& isFrontendMaxNumUseReached(fr.getType())) {
@@ -1081,7 +1087,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
getClientProfile(shareeFeClientId).stopSharingFrontend(selfClientId);
getClientProfile(selfClientId).releaseFrontend();
}
- for (int feId : getClientProfile(targetClientId).getInUseFrontendHandles()) {
+ for (long feId : getClientProfile(targetClientId).getInUseFrontendHandles()) {
getClientProfile(selfClientId).useFrontend(feId);
}
getClientProfile(selfClientId).setShareeFeClientId(targetClientId);
@@ -1096,14 +1102,14 @@ public class TunerResourceManagerService extends SystemService implements IBinde
currentOwnerProfile.stopSharingFrontend(newOwnerId);
newOwnerProfile.setShareeFeClientId(ClientProfile.INVALID_RESOURCE_ID);
currentOwnerProfile.setShareeFeClientId(newOwnerId);
- for (int inUseHandle : newOwnerProfile.getInUseFrontendHandles()) {
+ for (long inUseHandle : newOwnerProfile.getInUseFrontendHandles()) {
getFrontendResource(inUseHandle).setOwner(newOwnerId);
}
// change the primary frontend
newOwnerProfile.setPrimaryFrontend(currentOwnerProfile.getPrimaryFrontend());
currentOwnerProfile.setPrimaryFrontend(TunerResourceManager.INVALID_RESOURCE_HANDLE);
// double check there is no other resources tied to the previous owner
- for (int inUseHandle : currentOwnerProfile.getInUseFrontendHandles()) {
+ for (long inUseHandle : currentOwnerProfile.getInUseFrontendHandles()) {
int ownerId = getFrontendResource(inUseHandle).getOwnerClientId();
if (ownerId != newOwnerId) {
Slog.e(TAG, "something is wrong in transferFeOwner:" + inUseHandle
@@ -1135,8 +1141,8 @@ public class TunerResourceManagerService extends SystemService implements IBinde
ClientProfile currentOwnerProfile = getClientProfile(currentOwnerId);
ClientProfile newOwnerProfile = getClientProfile(newOwnerId);
- Set<Integer> inUseLnbHandles = new HashSet<>();
- for (Integer lnbHandle : currentOwnerProfile.getInUseLnbHandles()) {
+ Set<Long> inUseLnbHandles = new HashSet<>();
+ for (Long lnbHandle : currentOwnerProfile.getInUseLnbHandles()) {
// link lnb handle to the new profile
newOwnerProfile.useLnb(lnbHandle);
@@ -1148,7 +1154,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
// unlink lnb handles from the original owner
- for (Integer lnbHandle : inUseLnbHandles) {
+ for (Long lnbHandle : inUseLnbHandles) {
currentOwnerProfile.releaseLnb(lnbHandle);
}
@@ -1171,7 +1177,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@VisibleForTesting
- protected boolean requestLnbInternal(TunerLnbRequest request, int[] lnbHandle)
+ protected boolean requestLnbInternal(TunerLnbRequest request, long[] lnbHandle)
throws RemoteException {
if (DEBUG) {
Slog.d(TAG, "requestLnb(request=" + request + ")");
@@ -1199,7 +1205,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
return true;
}
- protected boolean claimLnb(TunerLnbRequest request, int[] lnbHandle, int[] reclaimOwnerId)
+ protected boolean claimLnb(TunerLnbRequest request, long[] lnbHandle, int[] reclaimOwnerId)
throws RemoteException {
lnbHandle[0] = TunerResourceManager.INVALID_RESOURCE_HANDLE;
reclaimOwnerId[0] = INVALID_CLIENT_ID;
@@ -1256,7 +1262,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@VisibleForTesting
- protected boolean requestCasSessionInternal(CasSessionRequest request, int[] casSessionHandle)
+ protected boolean requestCasSessionInternal(CasSessionRequest request, long[] casSessionHandle)
throws RemoteException {
if (DEBUG) {
Slog.d(TAG, "requestCasSession(request=" + request + ")");
@@ -1284,7 +1290,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
return true;
}
- protected boolean claimCasSession(CasSessionRequest request, int[] casSessionHandle,
+ protected boolean claimCasSession(CasSessionRequest request, long[] casSessionHandle,
int[] reclaimOwnerId) throws RemoteException {
casSessionHandle[0] = TunerResourceManager.INVALID_RESOURCE_HANDLE;
reclaimOwnerId[0] = INVALID_CLIENT_ID;
@@ -1296,7 +1302,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
CasResource cas = getCasResource(request.casSystemId);
// Unregistered Cas System is treated as having unlimited sessions.
if (cas == null) {
- int resourceHandle = generateResourceHandle(
+ long resourceHandle = generateResourceHandle(
TunerResourceManager.TUNER_RESOURCE_TYPE_CAS_SESSION, request.clientId);
cas = new CasResource.Builder(resourceHandle, request.casSystemId)
.maxSessionNum(Integer.MAX_VALUE)
@@ -1341,7 +1347,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@VisibleForTesting
- protected boolean requestCiCamInternal(TunerCiCamRequest request, int[] ciCamHandle)
+ protected boolean requestCiCamInternal(TunerCiCamRequest request, long[] ciCamHandle)
throws RemoteException {
if (DEBUG) {
Slog.d(TAG, "requestCiCamInternal(TunerCiCamRequest=" + request + ")");
@@ -1369,7 +1375,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
return true;
}
- protected boolean claimCiCam(TunerCiCamRequest request, int[] ciCamHandle,
+ protected boolean claimCiCam(TunerCiCamRequest request, long[] ciCamHandle,
int[] reclaimOwnerId) throws RemoteException {
ciCamHandle[0] = TunerResourceManager.INVALID_RESOURCE_HANDLE;
reclaimOwnerId[0] = INVALID_CLIENT_ID;
@@ -1381,7 +1387,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
CiCamResource ciCam = getCiCamResource(request.ciCamId);
// Unregistered CiCam is treated as having unlimited sessions.
if (ciCam == null) {
- int resourceHandle = generateResourceHandle(
+ long resourceHandle = generateResourceHandle(
TunerResourceManager.TUNER_RESOURCE_TYPE_FRONTEND_CICAM, request.ciCamId);
ciCam = new CiCamResource.Builder(resourceHandle, request.ciCamId)
.maxSessionNum(Integer.MAX_VALUE)
@@ -1454,7 +1460,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
@VisibleForTesting
- protected void releaseFrontendInternal(int frontendHandle, int clientId)
+ protected void releaseFrontendInternal(long frontendHandle, int clientId)
throws RemoteException {
if (DEBUG) {
Slog.d(TAG, "releaseFrontend(id=" + frontendHandle + ", clientId=" + clientId + " )");
@@ -1475,7 +1481,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
}
- private Set<Integer> unclaimFrontend(int frontendHandle, int clientId) throws RemoteException {
+ private Set<Integer> unclaimFrontend(long frontendHandle, int clientId) throws RemoteException {
Set<Integer> reclaimedResourceOwnerIds = null;
synchronized (mLock) {
if (!checkClientExists(clientId)) {
@@ -1533,7 +1539,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
@VisibleForTesting
public boolean requestDemuxInternal(@NonNull TunerDemuxRequest request,
- @NonNull int[] demuxHandle) throws RemoteException {
+ @NonNull long[] demuxHandle) throws RemoteException {
if (DEBUG) {
Slog.d(TAG, "requestDemux(request=" + request + ")");
}
@@ -1560,7 +1566,8 @@ public class TunerResourceManagerService extends SystemService implements IBinde
return true;
}
- protected boolean claimDemux(TunerDemuxRequest request, int[] demuxHandle, int[] reclaimOwnerId)
+ protected boolean claimDemux(
+ TunerDemuxRequest request, long[] demuxHandle, int[] reclaimOwnerId)
throws RemoteException {
demuxHandle[0] = TunerResourceManager.INVALID_RESOURCE_HANDLE;
reclaimOwnerId[0] = INVALID_CLIENT_ID;
@@ -1676,7 +1683,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
@VisibleForTesting
protected boolean requestDescramblerInternal(
- TunerDescramblerRequest request, int[] descramblerHandle) {
+ TunerDescramblerRequest request, long[] descramblerHandle) {
if (DEBUG) {
Slog.d(TAG, "requestDescrambler(request=" + request + ")");
}
@@ -2008,20 +2015,20 @@ public class TunerResourceManagerService extends SystemService implements IBinde
return false;
}
- private void updateFrontendClientMappingOnNewGrant(int grantingHandle, int ownerClientId) {
+ private void updateFrontendClientMappingOnNewGrant(long grantingHandle, int ownerClientId) {
FrontendResource grantingFrontend = getFrontendResource(grantingHandle);
ClientProfile ownerProfile = getClientProfile(ownerClientId);
grantingFrontend.setOwner(ownerClientId);
increFrontendNum(mFrontendUsedNums, grantingFrontend.getType());
ownerProfile.useFrontend(grantingHandle);
- for (int exclusiveGroupMember : grantingFrontend.getExclusiveGroupMemberFeHandles()) {
+ for (long exclusiveGroupMember : grantingFrontend.getExclusiveGroupMemberFeHandles()) {
getFrontendResource(exclusiveGroupMember).setOwner(ownerClientId);
ownerProfile.useFrontend(exclusiveGroupMember);
}
ownerProfile.setPrimaryFrontend(grantingHandle);
}
- private void updateDemuxClientMappingOnNewGrant(int grantingHandle, int ownerClientId) {
+ private void updateDemuxClientMappingOnNewGrant(long grantingHandle, int ownerClientId) {
DemuxResource grantingDemux = getDemuxResource(grantingHandle);
if (grantingDemux != null) {
ClientProfile ownerProfile = getClientProfile(ownerClientId);
@@ -2036,7 +2043,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
ownerProfile.releaseDemux(releasingDemux.getHandle());
}
- private void updateLnbClientMappingOnNewGrant(int grantingHandle, int ownerClientId) {
+ private void updateLnbClientMappingOnNewGrant(long grantingHandle, int ownerClientId) {
LnbResource grantingLnb = getLnbResource(grantingHandle);
ClientProfile ownerProfile = getClientProfile(ownerClientId);
grantingLnb.setOwner(ownerClientId);
@@ -2120,23 +2127,23 @@ public class TunerResourceManagerService extends SystemService implements IBinde
@VisibleForTesting
@Nullable
- protected FrontendResource getFrontendResource(int frontendHandle) {
+ protected FrontendResource getFrontendResource(long frontendHandle) {
return mFrontendResources.get(frontendHandle);
}
@VisibleForTesting
- protected Map<Integer, FrontendResource> getFrontendResources() {
+ protected Map<Long, FrontendResource> getFrontendResources() {
return mFrontendResources;
}
@VisibleForTesting
@Nullable
- protected DemuxResource getDemuxResource(int demuxHandle) {
+ protected DemuxResource getDemuxResource(long demuxHandle) {
return mDemuxResources.get(demuxHandle);
}
@VisibleForTesting
- protected Map<Integer, DemuxResource> getDemuxResources() {
+ protected Map<Long, DemuxResource> getDemuxResources() {
return mDemuxResources;
}
@@ -2195,8 +2202,8 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
}
- private void replaceFeResourceMap(Map<Integer, FrontendResource> srcMap, Map<Integer,
- FrontendResource> dstMap) {
+ private void replaceFeResourceMap(
+ Map<Long, FrontendResource> srcMap, Map<Long, FrontendResource> dstMap) {
if (dstMap != null) {
dstMap.clear();
if (srcMap != null && srcMap.size() > 0) {
@@ -2249,7 +2256,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
if (fe.getExclusiveGroupId() == newFe.getExclusiveGroupId()) {
newFe.addExclusiveGroupMemberFeHandle(fe.getHandle());
newFe.addExclusiveGroupMemberFeHandles(fe.getExclusiveGroupMemberFeHandles());
- for (int excGroupmemberFeHandle : fe.getExclusiveGroupMemberFeHandles()) {
+ for (long excGroupmemberFeHandle : fe.getExclusiveGroupMemberFeHandles()) {
getFrontendResource(excGroupmemberFeHandle)
.addExclusiveGroupMemberFeHandle(newFe.getHandle());
}
@@ -2267,7 +2274,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
mDemuxResources.put(newDemux.getHandle(), newDemux);
}
- private void removeFrontendResource(int removingHandle) {
+ private void removeFrontendResource(long removingHandle) {
FrontendResource fe = getFrontendResource(removingHandle);
if (fe == null) {
return;
@@ -2279,7 +2286,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
}
clearFrontendAndClientMapping(ownerClient);
}
- for (int excGroupmemberFeHandle : fe.getExclusiveGroupMemberFeHandles()) {
+ for (long excGroupmemberFeHandle : fe.getExclusiveGroupMemberFeHandles()) {
getFrontendResource(excGroupmemberFeHandle)
.removeExclusiveGroupMemberFeId(fe.getHandle());
}
@@ -2287,7 +2294,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
mFrontendResources.remove(removingHandle);
}
- private void removeDemuxResource(int removingHandle) {
+ private void removeDemuxResource(long removingHandle) {
DemuxResource demux = getDemuxResource(removingHandle);
if (demux == null) {
return;
@@ -2300,12 +2307,12 @@ public class TunerResourceManagerService extends SystemService implements IBinde
@VisibleForTesting
@Nullable
- protected LnbResource getLnbResource(int lnbHandle) {
+ protected LnbResource getLnbResource(long lnbHandle) {
return mLnbResources.get(lnbHandle);
}
@VisibleForTesting
- protected Map<Integer, LnbResource> getLnbResources() {
+ protected Map<Long, LnbResource> getLnbResources() {
return mLnbResources;
}
@@ -2314,7 +2321,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
mLnbResources.put(newLnb.getHandle(), newLnb);
}
- private void removeLnbResource(int removingHandle) {
+ private void removeLnbResource(long removingHandle) {
LnbResource lnb = getLnbResource(removingHandle);
if (lnb == null) {
return;
@@ -2416,7 +2423,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
if (profile == null) {
return;
}
- for (Integer feId : profile.getInUseFrontendHandles()) {
+ for (Long feId : profile.getInUseFrontendHandles()) {
FrontendResource fe = getFrontendResource(feId);
int ownerClientId = fe.getOwnerClientId();
if (ownerClientId == profile.getId()) {
@@ -2427,10 +2434,9 @@ public class TunerResourceManagerService extends SystemService implements IBinde
if (ownerClientProfile != null) {
ownerClientProfile.stopSharingFrontend(profile.getId());
}
-
}
- int primaryFeId = profile.getPrimaryFrontend();
+ long primaryFeId = profile.getPrimaryFrontend();
if (primaryFeId != TunerResourceManager.INVALID_RESOURCE_HANDLE) {
FrontendResource primaryFe = getFrontendResource(primaryFeId);
if (primaryFe != null) {
@@ -2448,7 +2454,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
return;
}
// Clear Lnb
- for (Integer lnbHandle : profile.getInUseLnbHandles()) {
+ for (Long lnbHandle : profile.getInUseLnbHandles()) {
getLnbResource(lnbHandle).removeOwner();
}
// Clear Cas
@@ -2460,7 +2466,7 @@ public class TunerResourceManagerService extends SystemService implements IBinde
getCiCamResource(profile.getInUseCiCamId()).removeOwner(profile.getId());
}
// Clear Demux
- for (Integer demuxHandle : profile.getInUseDemuxHandles()) {
+ for (Long demuxHandle : profile.getInUseDemuxHandles()) {
getDemuxResource(demuxHandle).removeOwner();
}
// Clear Frontend
@@ -2473,24 +2479,31 @@ public class TunerResourceManagerService extends SystemService implements IBinde
return mClientProfiles.keySet().contains(clientId);
}
- private int generateResourceHandle(
+ /**
+ * Generate resource handle for resourceType and resourceId
+ * Resource Handle Allotment : 64 bits (long)
+ * 8 bits - resourceType
+ * 32 bits - resourceId
+ * 24 bits - resourceRequestCount
+ */
+ private long generateResourceHandle(
@TunerResourceManager.TunerResourceType int resourceType, int resourceId) {
- return (resourceType & 0x000000ff) << 24
- | (resourceId << 16)
- | (mResourceRequestCount++ & 0xffff);
+ return (resourceType & RESOURCE_TYPE_MASK) << RESOURCE_TYPE_SHIFT
+ | (resourceId & RESOURCE_ID_MASK) << RESOURCE_ID_SHIFT
+ | (mResourceRequestCount++ & RESOURCE_COUNT_MASK);
}
@VisibleForTesting
- protected int getResourceIdFromHandle(int resourceHandle) {
+ protected int getResourceIdFromHandle(long resourceHandle) {
if (resourceHandle == TunerResourceManager.INVALID_RESOURCE_HANDLE) {
- return resourceHandle;
+ return (int) resourceHandle;
}
- return (resourceHandle & 0x00ff0000) >> 16;
+ return (int) ((resourceHandle >> RESOURCE_ID_SHIFT) & RESOURCE_ID_MASK);
}
- private boolean validateResourceHandle(int resourceType, int resourceHandle) {
+ private boolean validateResourceHandle(int resourceType, long resourceHandle) {
if (resourceHandle == TunerResourceManager.INVALID_RESOURCE_HANDLE
- || ((resourceHandle & 0xff000000) >> 24) != resourceType) {
+ || ((resourceHandle >> RESOURCE_TYPE_SHIFT) & RESOURCE_TYPE_MASK) != resourceType) {
return false;
}
return true;
diff --git a/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java
index bf58443194e5..a222ef04ac30 100644
--- a/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/tv/tunerresourcemanager/TunerResourceManagerServiceTest.java
@@ -175,8 +175,7 @@ public class TunerResourceManagerServiceTest {
tunerFrontendInfo(1 /*handle*/, FrontendSettings.TYPE_DVBT, 1 /*exclusiveGroupId*/);
mTunerResourceManagerService.setFrontendInfoListInternal(infos);
- Map<Integer, FrontendResource> resources =
- mTunerResourceManagerService.getFrontendResources();
+ Map<Long, FrontendResource> resources = mTunerResourceManagerService.getFrontendResources();
for (int id = 0; id < infos.length; id++) {
assertThat(resources.get(infos[id].handle)
.getExclusiveGroupMemberFeHandles().size()).isEqualTo(0);
@@ -203,15 +202,14 @@ public class TunerResourceManagerServiceTest {
tunerFrontendInfo(3 /*handle*/, FrontendSettings.TYPE_ATSC, 1 /*exclusiveGroupId*/);
mTunerResourceManagerService.setFrontendInfoListInternal(infos);
- Map<Integer, FrontendResource> resources =
- mTunerResourceManagerService.getFrontendResources();
+ Map<Long, FrontendResource> resources = mTunerResourceManagerService.getFrontendResources();
assertThat(resources.values()).comparingElementsUsing(FR_TFI_COMPARE)
.containsExactlyElementsIn(Arrays.asList(infos));
- assertThat(resources.get(0).getExclusiveGroupMemberFeHandles()).isEmpty();
- assertThat(resources.get(1).getExclusiveGroupMemberFeHandles()).containsExactly(2, 3);
- assertThat(resources.get(2).getExclusiveGroupMemberFeHandles()).containsExactly(1, 3);
- assertThat(resources.get(3).getExclusiveGroupMemberFeHandles()).containsExactly(1, 2);
+ assertThat(resources.get(0L).getExclusiveGroupMemberFeHandles()).isEmpty();
+ assertThat(resources.get(1L).getExclusiveGroupMemberFeHandles()).containsExactly(2L, 3L);
+ assertThat(resources.get(2L).getExclusiveGroupMemberFeHandles()).containsExactly(1L, 3L);
+ assertThat(resources.get(3L).getExclusiveGroupMemberFeHandles()).containsExactly(1L, 2L);
}
@Test
@@ -224,11 +222,11 @@ public class TunerResourceManagerServiceTest {
tunerFrontendInfo(1 /*handle*/, FrontendSettings.TYPE_DVBS, 1 /*exclusiveGroupId*/);
mTunerResourceManagerService.setFrontendInfoListInternal(infos);
- Map<Integer, FrontendResource> resources0 =
+ Map<Long, FrontendResource> resources0 =
mTunerResourceManagerService.getFrontendResources();
mTunerResourceManagerService.setFrontendInfoListInternal(infos);
- Map<Integer, FrontendResource> resources1 =
+ Map<Long, FrontendResource> resources1 =
mTunerResourceManagerService.getFrontendResources();
assertThat(resources0).isEqualTo(resources1);
@@ -251,8 +249,7 @@ public class TunerResourceManagerServiceTest {
tunerFrontendInfo(1 /*handle*/, FrontendSettings.TYPE_DVBT, 1 /*exclusiveGroupId*/);
mTunerResourceManagerService.setFrontendInfoListInternal(infos1);
- Map<Integer, FrontendResource> resources =
- mTunerResourceManagerService.getFrontendResources();
+ Map<Long, FrontendResource> resources = mTunerResourceManagerService.getFrontendResources();
for (int id = 0; id < infos1.length; id++) {
assertThat(resources.get(infos1[id].handle)
.getExclusiveGroupMemberFeHandles().size()).isEqualTo(0);
@@ -278,8 +275,7 @@ public class TunerResourceManagerServiceTest {
tunerFrontendInfo(1 /*handle*/, FrontendSettings.TYPE_DVBT, 1 /*exclusiveGroupId*/);
mTunerResourceManagerService.setFrontendInfoListInternal(infos1);
- Map<Integer, FrontendResource> resources =
- mTunerResourceManagerService.getFrontendResources();
+ Map<Long, FrontendResource> resources = mTunerResourceManagerService.getFrontendResources();
for (int id = 0; id < infos1.length; id++) {
assertThat(resources.get(infos1[id].handle)
.getExclusiveGroupMemberFeHandles().size()).isEqualTo(0);
@@ -296,7 +292,7 @@ public class TunerResourceManagerServiceTest {
mTunerResourceManagerService.setFrontendInfoListInternal(infos0);
TunerFrontendRequest request =
tunerFrontendRequest(0 /*clientId*/, FrontendSettings.TYPE_DVBT);
- int[] frontendHandle = new int[1];
+ long[] frontendHandle = new long[1];
assertThat(mTunerResourceManagerService
.requestFrontendInternal(request, frontendHandle)).isFalse();
assertThat(frontendHandle[0]).isEqualTo(TunerResourceManager.INVALID_RESOURCE_HANDLE);
@@ -317,7 +313,7 @@ public class TunerResourceManagerServiceTest {
TunerFrontendRequest request =
tunerFrontendRequest(client0.getId() /*clientId*/, FrontendSettings.TYPE_DVBT);
- int[] frontendHandle = new int[1];
+ long[] frontendHandle = new long[1];
assertThat(mTunerResourceManagerService
.requestFrontendInternal(request, frontendHandle)).isFalse();
assertThat(frontendHandle[0]).isEqualTo(TunerResourceManager.INVALID_RESOURCE_HANDLE);
@@ -349,7 +345,7 @@ public class TunerResourceManagerServiceTest {
TunerFrontendRequest request =
tunerFrontendRequest(client0.getId() /*clientId*/, FrontendSettings.TYPE_DVBT);
- int[] frontendHandle = new int[1];
+ long[] frontendHandle = new long[1];
assertThat(mTunerResourceManagerService
.requestFrontendInternal(request, frontendHandle)).isTrue();
assertThat(frontendHandle[0]).isEqualTo(0);
@@ -382,7 +378,7 @@ public class TunerResourceManagerServiceTest {
1 /*exclusiveGroupId*/);
mTunerResourceManagerService.setFrontendInfoListInternal(infos);
- int[] frontendHandle = new int[1];
+ long[] frontendHandle = new long[1];
TunerFrontendRequest request =
tunerFrontendRequest(client1.getId() /*clientId*/, FrontendSettings.TYPE_DVBT);
assertThat(mTunerResourceManagerService
@@ -423,7 +419,7 @@ public class TunerResourceManagerServiceTest {
TunerFrontendRequest request =
tunerFrontendRequest(client0.getId() /*clientId*/, FrontendSettings.TYPE_DVBT);
- int[] frontendHandle = new int[1];
+ long[] frontendHandle = new long[1];
assertThat(mTunerResourceManagerService
.requestFrontendInternal(request, frontendHandle)).isTrue();
@@ -463,12 +459,12 @@ public class TunerResourceManagerServiceTest {
TunerFrontendRequest request =
tunerFrontendRequest(client0.getId() /*clientId*/, FrontendSettings.TYPE_DVBT);
- int[] frontendHandle = new int[1];
+ long[] frontendHandle = new long[1];
assertThat(mTunerResourceManagerService
.requestFrontendInternal(request, frontendHandle)).isTrue();
assertThat(frontendHandle[0]).isEqualTo(infos[0].handle);
assertThat(client0.getProfile().getInUseFrontendHandles())
- .isEqualTo(new HashSet<Integer>(Arrays.asList(infos[0].handle, infos[1].handle)));
+ .isEqualTo(new HashSet<Long>(Arrays.asList(infos[0].handle, infos[1].handle)));
request =
tunerFrontendRequest(client1.getId() /*clientId*/, FrontendSettings.TYPE_DVBS);
@@ -505,7 +501,7 @@ public class TunerResourceManagerServiceTest {
TunerFrontendRequest request =
tunerFrontendRequest(client0.getId() /*clientId*/, FrontendSettings.TYPE_DVBT);
- int[] frontendHandle = new int[1];
+ long[] frontendHandle = new long[1];
assertThat(mTunerResourceManagerService
.requestFrontendInternal(request, frontendHandle)).isTrue();
assertThat(frontendHandle[0]).isEqualTo(infos[0].handle);
@@ -536,7 +532,7 @@ public class TunerResourceManagerServiceTest {
mTunerResourceManagerService.updateCasInfoInternal(1 /*casSystemId*/, 2 /*maxSessionNum*/);
CasSessionRequest request = casSessionRequest(client0.getId(), 1 /*casSystemId*/);
- int[] casSessionHandle = new int[1];
+ long[] casSessionHandle = new long[1];
// Request for 2 cas sessions.
assertThat(mTunerResourceManagerService
.requestCasSessionInternal(request, casSessionHandle)).isTrue();
@@ -583,7 +579,7 @@ public class TunerResourceManagerServiceTest {
mTunerResourceManagerService.updateCasInfoInternal(1 /*casSystemId*/, 2 /*maxSessionNum*/);
TunerCiCamRequest request = tunerCiCamRequest(client0.getId(), 1 /*ciCamId*/);
- int[] ciCamHandle = new int[1];
+ long[] ciCamHandle = new long[1];
// Request for 2 ciCam sessions.
assertThat(mTunerResourceManagerService
.requestCiCamInternal(request, ciCamHandle)).isTrue();
@@ -626,7 +622,7 @@ public class TunerResourceManagerServiceTest {
mTunerResourceManagerService.updateCasInfoInternal(1 /*casSystemId*/, 2 /*maxSessionNum*/);
CasSessionRequest request = casSessionRequest(client0.getId(), 1 /*casSystemId*/);
- int[] casSessionHandle = new int[1];
+ long[] casSessionHandle = new long[1];
// Request for 1 cas sessions.
assertThat(mTunerResourceManagerService
.requestCasSessionInternal(request, casSessionHandle)).isTrue();
@@ -660,7 +656,7 @@ public class TunerResourceManagerServiceTest {
mTunerResourceManagerService.updateCasInfoInternal(1 /*casSystemId*/, 2 /*maxSessionNum*/);
TunerCiCamRequest request = tunerCiCamRequest(client0.getId(), 1 /*ciCamId*/);
- int[] ciCamHandle = new int[1];
+ long[] ciCamHandle = new long[1];
// Request for 1 ciCam sessions.
assertThat(mTunerResourceManagerService
.requestCiCamInternal(request, ciCamHandle)).isTrue();
@@ -696,17 +692,17 @@ public class TunerResourceManagerServiceTest {
TvInputService.PRIORITY_HINT_USE_CASE_TYPE_PLAYBACK, 500);
// Init lnb resources.
- int[] lnbHandles = {1};
+ long[] lnbHandles = {1};
mTunerResourceManagerService.setLnbInfoListInternal(lnbHandles);
TunerLnbRequest request = new TunerLnbRequest();
request.clientId = client0.getId();
- int[] lnbHandle = new int[1];
+ long[] lnbHandle = new long[1];
assertThat(mTunerResourceManagerService
.requestLnbInternal(request, lnbHandle)).isTrue();
assertThat(lnbHandle[0]).isEqualTo(lnbHandles[0]);
assertThat(client0.getProfile().getInUseLnbHandles())
- .isEqualTo(new HashSet<Integer>(Arrays.asList(lnbHandles[0])));
+ .isEqualTo(new HashSet<Long>(Arrays.asList(lnbHandles[0])));
request = new TunerLnbRequest();
request.clientId = client1.getId();
@@ -732,12 +728,12 @@ public class TunerResourceManagerServiceTest {
TvInputService.PRIORITY_HINT_USE_CASE_TYPE_PLAYBACK);
// Init lnb resources.
- int[] lnbHandles = {0};
+ long[] lnbHandles = {0};
mTunerResourceManagerService.setLnbInfoListInternal(lnbHandles);
TunerLnbRequest request = new TunerLnbRequest();
request.clientId = client0.getId();
- int[] lnbHandle = new int[1];
+ long[] lnbHandle = new long[1];
assertThat(mTunerResourceManagerService
.requestLnbInternal(request, lnbHandle)).isTrue();
assertThat(lnbHandle[0]).isEqualTo(lnbHandles[0]);
@@ -768,7 +764,7 @@ public class TunerResourceManagerServiceTest {
TunerFrontendRequest request =
tunerFrontendRequest(client0.getId() /*clientId*/, FrontendSettings.TYPE_DVBT);
- int[] frontendHandle = new int[1];
+ long[] frontendHandle = new long[1];
assertThat(mTunerResourceManagerService
.requestFrontendInternal(request, frontendHandle)).isTrue();
assertThat(frontendHandle[0]).isEqualTo(infos[0].handle);
@@ -799,12 +795,12 @@ public class TunerResourceManagerServiceTest {
infos[2] = tunerDemuxInfo(2 /* handle */, Filter.TYPE_TS);
mTunerResourceManagerService.setDemuxInfoListInternal(infos);
- int[] demuxHandle0 = new int[1];
+ long[] demuxHandle0 = new long[1];
// first with undefined type (should be the first one with least # of caps)
TunerDemuxRequest request = tunerDemuxRequest(client0.getId(), Filter.TYPE_UNDEFINED);
assertThat(mTunerResourceManagerService.requestDemuxInternal(request, demuxHandle0))
.isTrue();
- assertThat(demuxHandle0[0]).isEqualTo(1);
+ assertThat(demuxHandle0[0]).isEqualTo(1L);
DemuxResource dr = mTunerResourceManagerService.getDemuxResource(demuxHandle0[0]);
mTunerResourceManagerService.releaseDemuxInternal(dr);
@@ -813,20 +809,20 @@ public class TunerResourceManagerServiceTest {
demuxHandle0[0] = -1;
assertThat(mTunerResourceManagerService.requestDemuxInternal(request, demuxHandle0))
.isFalse();
- assertThat(demuxHandle0[0]).isEqualTo(-1);
+ assertThat(demuxHandle0[0]).isEqualTo(-1L);
// now with TS (should be the one with least # of caps that supports TS)
request.desiredFilterTypes = Filter.TYPE_TS;
assertThat(mTunerResourceManagerService.requestDemuxInternal(request, demuxHandle0))
.isTrue();
- assertThat(demuxHandle0[0]).isEqualTo(2);
+ assertThat(demuxHandle0[0]).isEqualTo(2L);
// request for another TS
TunerClient client1 = new TunerClient();
client1.register("1" /*sessionId*/,
TvInputService.PRIORITY_HINT_USE_CASE_TYPE_PLAYBACK);
- int[] demuxHandle1 = new int[1];
+ long[] demuxHandle1 = new long[1];
TunerDemuxRequest request1 = tunerDemuxRequest(client1.getId(), Filter.TYPE_TS);
assertThat(mTunerResourceManagerService.requestDemuxInternal(request1, demuxHandle1))
.isTrue();
@@ -865,14 +861,14 @@ public class TunerResourceManagerServiceTest {
// let client0(prio:100) request for IP - should succeed
TunerDemuxRequest request0 = tunerDemuxRequest(client0.getId(), Filter.TYPE_IP);
- int[] demuxHandle0 = new int[1];
+ long[] demuxHandle0 = new long[1];
assertThat(mTunerResourceManagerService
.requestDemuxInternal(request0, demuxHandle0)).isTrue();
assertThat(demuxHandle0[0]).isEqualTo(0);
// let client1(prio:50) request for IP - should fail
TunerDemuxRequest request1 = tunerDemuxRequest(client1.getId(), Filter.TYPE_IP);
- int[] demuxHandle1 = new int[1];
+ long[] demuxHandle1 = new long[1];
demuxHandle1[0] = -1;
assertThat(mTunerResourceManagerService
.requestDemuxInternal(request1, demuxHandle1)).isFalse();
@@ -892,7 +888,7 @@ public class TunerResourceManagerServiceTest {
// let client2(prio:50) request for TS - should succeed
TunerDemuxRequest request2 = tunerDemuxRequest(client2.getId(), Filter.TYPE_TS);
- int[] demuxHandle2 = new int[1];
+ long[] demuxHandle2 = new long[1];
assertThat(mTunerResourceManagerService
.requestDemuxInternal(request2, demuxHandle2)).isTrue();
assertThat(demuxHandle2[0]).isEqualTo(0);
@@ -917,7 +913,7 @@ public class TunerResourceManagerServiceTest {
client0.register("0" /*sessionId*/,
TvInputService.PRIORITY_HINT_USE_CASE_TYPE_PLAYBACK);
- int[] desHandle = new int[1];
+ long[] desHandle = new long[1];
TunerDescramblerRequest request = new TunerDescramblerRequest();
request.clientId = client0.getId();
assertThat(mTunerResourceManagerService.requestDescramblerInternal(request, desHandle))
@@ -980,7 +976,7 @@ public class TunerResourceManagerServiceTest {
1 /*exclusiveGroupId*/);
/**** Init Lnb Resources ****/
- int[] lnbHandles = {1};
+ long[] lnbHandles = {1};
mTunerResourceManagerService.setLnbInfoListInternal(lnbHandles);
// Update frontend list in TRM
@@ -989,7 +985,7 @@ public class TunerResourceManagerServiceTest {
/**** Request Frontend ****/
// Predefined frontend request and array to save returned frontend handle
- int[] frontendHandle = new int[1];
+ long[] frontendHandle = new long[1];
TunerFrontendRequest request = tunerFrontendRequest(
ownerClient0.getId() /*clientId*/,
FrontendSettings.TYPE_DVBT);
@@ -1000,7 +996,7 @@ public class TunerResourceManagerServiceTest {
.isTrue();
assertThat(frontendHandle[0]).isEqualTo(infos[0].handle);
assertThat(ownerClient0.getProfile().getInUseFrontendHandles())
- .isEqualTo(new HashSet<Integer>(Arrays.asList(
+ .isEqualTo(new HashSet<Long>(Arrays.asList(
infos[0].handle,
infos[1].handle)));
@@ -1030,15 +1026,15 @@ public class TunerResourceManagerServiceTest {
shareClient1.getId())));
// Verify in use frontend list in all the primary owner and share owner clients
assertThat(ownerClient0.getProfile().getInUseFrontendHandles())
- .isEqualTo(new HashSet<Integer>(Arrays.asList(
+ .isEqualTo(new HashSet<Long>(Arrays.asList(
infos[0].handle,
infos[1].handle)));
assertThat(shareClient0.getProfile().getInUseFrontendHandles())
- .isEqualTo(new HashSet<Integer>(Arrays.asList(
+ .isEqualTo(new HashSet<Long>(Arrays.asList(
infos[0].handle,
infos[1].handle)));
assertThat(shareClient1.getProfile().getInUseFrontendHandles())
- .isEqualTo(new HashSet<Integer>(Arrays.asList(
+ .isEqualTo(new HashSet<Long>(Arrays.asList(
infos[0].handle,
infos[1].handle)));
@@ -1052,12 +1048,12 @@ public class TunerResourceManagerServiceTest {
.isEqualTo(new HashSet<Integer>(Arrays.asList(
shareClient0.getId())));
assertThat(ownerClient0.getProfile().getInUseFrontendHandles())
- .isEqualTo(new HashSet<Integer>(Arrays.asList(
+ .isEqualTo(new HashSet<Long>(Arrays.asList(
infos[0].handle,
infos[1].handle)));
assertThat(shareClient0.getProfile()
.getInUseFrontendHandles())
- .isEqualTo(new HashSet<Integer>(Arrays.asList(
+ .isEqualTo(new HashSet<Long>(Arrays.asList(
infos[0].handle,
infos[1].handle)));
@@ -1080,7 +1076,7 @@ public class TunerResourceManagerServiceTest {
assertThat(mTunerResourceManagerService.getFrontendResource(infos[1].handle)
.getOwnerClientId()).isEqualTo(ownerClient1.getId());
assertThat(ownerClient1.getProfile().getInUseFrontendHandles())
- .isEqualTo(new HashSet<Integer>(Arrays.asList(
+ .isEqualTo(new HashSet<Long>(Arrays.asList(
infos[0].handle,
infos[1].handle)));
assertThat(ownerClient0.getProfile().getInUseFrontendHandles()
@@ -1127,7 +1123,7 @@ public class TunerResourceManagerServiceTest {
// Predefined Lnb request and handle array
TunerLnbRequest requestLnb = new TunerLnbRequest();
requestLnb.clientId = shareClient0.getId();
- int[] lnbHandle = new int[1];
+ long[] lnbHandle = new long[1];
// Request for an Lnb
assertThat(mTunerResourceManagerService
@@ -1155,7 +1151,7 @@ public class TunerResourceManagerServiceTest {
.isEmpty())
.isTrue();
assertThat(shareClient0.getProfile().getInUseLnbHandles())
- .isEqualTo(new HashSet<Integer>(Arrays.asList(
+ .isEqualTo(new HashSet<Long>(Arrays.asList(
lnbHandles[0])));
ownerClient0.unregister();
@@ -1163,7 +1159,7 @@ public class TunerResourceManagerServiceTest {
}
private TunerFrontendInfo tunerFrontendInfo(
- int handle, int frontendType, int exclusiveGroupId) {
+ long handle, int frontendType, int exclusiveGroupId) {
TunerFrontendInfo info = new TunerFrontendInfo();
info.handle = handle;
info.type = frontendType;