Skip to content
Snippets Groups Projects
Commit 1c15cee2 authored by Amy Zhang's avatar Amy Zhang
Browse files

Expose FrontendInfo list of all the existed Frontends in Tuner java

Test: make
Bug: 158818697
Change-Id: Iddea804a2ab9c8609d843c6259763e092b003131
parent 782672aa
No related branches found
No related tags found
No related merge requests found
......@@ -5091,6 +5091,7 @@ package android.media.tv.tuner {
method public long getAvSyncTime(int);
method @Nullable public android.media.tv.tuner.DemuxCapabilities getDemuxCapabilities();
method @Nullable public android.media.tv.tuner.frontend.FrontendInfo getFrontendInfo();
method @Nullable public java.util.List<android.media.tv.tuner.frontend.FrontendInfo> getFrontendInfoList();
method @Nullable public android.media.tv.tuner.frontend.FrontendStatus getFrontendStatus(@NonNull int[]);
method public int linkFrontendToCiCam(int);
method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_DESCRAMBLER) public android.media.tv.tuner.Descrambler openDescrambler();
......
......@@ -5031,6 +5031,7 @@ package android.media.tv.tuner {
method public long getAvSyncTime(int);
method @Nullable public android.media.tv.tuner.DemuxCapabilities getDemuxCapabilities();
method @Nullable public android.media.tv.tuner.frontend.FrontendInfo getFrontendInfo();
method @Nullable public java.util.List<android.media.tv.tuner.frontend.FrontendInfo> getFrontendInfoList();
method @Nullable public android.media.tv.tuner.frontend.FrontendStatus getFrontendStatus(@NonNull int[]);
method public int linkFrontendToCiCam(int);
method @Nullable @RequiresPermission(android.Manifest.permission.ACCESS_TV_DESCRAMBLER) public android.media.tv.tuner.Descrambler openDescrambler();
......
......@@ -61,6 +61,7 @@ import com.android.internal.util.FrameworkStatsLog;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -369,6 +370,28 @@ public class Tuner implements AutoCloseable {
mTunerResourceManager.setFrontendInfoList(infos);
}
/**
* Get frontend info list from native and build them into a {@link FrontendInfo} list. Any
* {@code null} FrontendInfo element would be removed.
*/
private FrontendInfo[] getFrontendInfoListInternal() {
List<Integer> ids = getFrontendIds();
if (ids == null) {
return null;
}
FrontendInfo[] infos = new FrontendInfo[ids.size()];
for (int i = 0; i < ids.size(); i++) {
int id = ids.get(i);
FrontendInfo frontendInfo = getFrontendInfoById(id);
if (frontendInfo == null) {
Log.e(TAG, "Failed to get a FrontendInfo on frontend id:" + id + "!");
continue;
}
infos[i] = frontendInfo;
}
return Arrays.stream(infos).filter(Objects::nonNull).toArray(FrontendInfo[]::new);
}
/** @hide */
public static int getTunerVersion() {
return sTunerVersion;
......@@ -932,7 +955,7 @@ public class Tuner implements AutoCloseable {
}
/**
* Gets the frontend information.
* Gets the initialized frontend information.
*
* @return The frontend information. {@code null} if the operation failed.
*/
......@@ -950,6 +973,16 @@ public class Tuner implements AutoCloseable {
return mFrontendInfo;
}
/**
* Get a list all the existed frontend information.
*
* @return The list of all the frontend information. {@code null} if the operation failed.
*/
@Nullable
public List<FrontendInfo> getFrontendInfoList() {
return Arrays.asList(getFrontendInfoListInternal());
}
/** @hide */
public FrontendInfo getFrontendInfoById(int id) {
return nativeGetFrontendInfo(id);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment