diff options
4 files changed, 223 insertions, 0 deletions
diff --git a/media/java/android/media/tv/SignalingDataInfo.aidl b/media/java/android/media/tv/SignalingDataInfo.aidl new file mode 100644 index 000000000000..7108f36953a9 --- /dev/null +++ b/media/java/android/media/tv/SignalingDataInfo.aidl @@ -0,0 +1,3 @@ +package android.media.tv; + +parcelable SignalingDataInfo; diff --git a/media/java/android/media/tv/SignalingDataInfo.java b/media/java/android/media/tv/SignalingDataInfo.java new file mode 100644 index 000000000000..b29ea5c905ec --- /dev/null +++ b/media/java/android/media/tv/SignalingDataInfo.java @@ -0,0 +1,117 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.media.tv; + +import android.annotation.NonNull; +import android.os.Parcelable; + +/** @hide */ +public class SignalingDataInfo implements Parcelable { + public static final @NonNull Parcelable.Creator<SignalingDataInfo> CREATOR = + new Parcelable.Creator<SignalingDataInfo>() { + @Override + public SignalingDataInfo[] newArray(int size) { + return new SignalingDataInfo[size]; + } + + @Override + public SignalingDataInfo createFromParcel(@NonNull android.os.Parcel in) { + return new SignalingDataInfo(in); + } + }; + + private int mTableId; + private @NonNull String mTable; + private int mMetadataType; + private int mVersion; + private int mGroup; + private @NonNull String mEncoding; + + public SignalingDataInfo( + int tableId, + @NonNull String table, + int metadataType, + int version, + int group, + @NonNull String encoding) { + this.mTableId = tableId; + this.mTable = table; + com.android.internal.util.AnnotationValidations.validate(NonNull.class, null, mTable); + this.mMetadataType = metadataType; + this.mVersion = version; + this.mGroup = group; + this.mEncoding = encoding; + com.android.internal.util.AnnotationValidations.validate(NonNull.class, null, mEncoding); + } + + public int getTableId() { + return mTableId; + } + + public @NonNull String getTable() { + return mTable; + } + + public int getMetadataType() { + return mMetadataType; + } + + public int getVersion() { + return mVersion; + } + + public int getGroup() { + return mGroup; + } + + public @NonNull String getEncoding() { + return mEncoding; + } + + @Override + public void writeToParcel(@NonNull android.os.Parcel dest, int flags) { + dest.writeInt(mTableId); + dest.writeString(mTable); + dest.writeInt(mMetadataType); + dest.writeInt(mVersion); + dest.writeInt(mGroup); + dest.writeString(mEncoding); + } + + @Override + public int describeContents() { + return 0; + } + + SignalingDataInfo(@NonNull android.os.Parcel in) { + int tableId = in.readInt(); + String table = in.readString(); + int metadataType = in.readInt(); + int version = in.readInt(); + int group = in.readInt(); + String encoding = in.readString(); + + this.mTableId = tableId; + this.mTable = table; + com.android.internal.util.AnnotationValidations.validate(NonNull.class, null, mTable); + this.mMetadataType = metadataType; + this.mVersion = version; + this.mGroup = group; + this.mEncoding = encoding; + com.android.internal.util.AnnotationValidations.validate(NonNull.class, null, mEncoding); + } +} diff --git a/media/java/android/media/tv/SignalingDataResponse.aidl b/media/java/android/media/tv/SignalingDataResponse.aidl new file mode 100644 index 000000000000..a548e4e1edcb --- /dev/null +++ b/media/java/android/media/tv/SignalingDataResponse.aidl @@ -0,0 +1,3 @@ +package android.media.tv; + +parcelable SignalingDataResponse; diff --git a/media/java/android/media/tv/SignalingDataResponse.java b/media/java/android/media/tv/SignalingDataResponse.java new file mode 100644 index 000000000000..3e4c790f6c70 --- /dev/null +++ b/media/java/android/media/tv/SignalingDataResponse.java @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2024 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.media.tv; + +import android.annotation.NonNull; +import android.os.Parcelable; + +import java.util.List; + +/** @hide */ +public class SignalingDataResponse extends BroadcastInfoResponse implements Parcelable { + public static final @NonNull Parcelable.Creator<SignalingDataResponse> CREATOR = + new Parcelable.Creator<SignalingDataResponse>() { + @Override + public SignalingDataResponse[] newArray(int size) { + return new SignalingDataResponse[size]; + } + + @Override + public SignalingDataResponse createFromParcel(@NonNull android.os.Parcel in) { + return new SignalingDataResponse(in); + } + }; + private static final @TvInputManager.BroadcastInfoType int RESPONSE_TYPE = + TvInputManager.BROADCAST_INFO_TYPE_SIGNALING_DATA; + private final @NonNull int[] mTableIds; + private final int mMetadataTypes; + private final @NonNull List<SignalingDataInfo> mSignalingDataInfoList; + + public SignalingDataResponse( + int requestId, + int sequence, + @ResponseResult int responseResult, + @NonNull int[] tableIds, + int metadataTypes, + @NonNull List<SignalingDataInfo> signalingDataInfoList) { + super(RESPONSE_TYPE, requestId, sequence, responseResult); + this.mTableIds = tableIds; + com.android.internal.util.AnnotationValidations.validate(NonNull.class, null, mTableIds); + this.mMetadataTypes = metadataTypes; + this.mSignalingDataInfoList = signalingDataInfoList; + com.android.internal.util.AnnotationValidations.validate( + NonNull.class, null, mSignalingDataInfoList); + } + + public @NonNull int[] getTableIds() { + return mTableIds; + } + + public int getMetadataTypes() { + return mMetadataTypes; + } + + public @NonNull List<SignalingDataInfo> getSignalingDataInfoList() { + return mSignalingDataInfoList; + } + + @Override + public void writeToParcel(@NonNull android.os.Parcel dest, int flags) { + super.writeToParcel(dest, flags); + dest.writeIntArray(mTableIds); + dest.writeInt(mMetadataTypes); + dest.writeParcelableList(mSignalingDataInfoList, flags); + } + + @Override + public int describeContents() { + return 0; + } + + SignalingDataResponse(@NonNull android.os.Parcel in) { + super(RESPONSE_TYPE, in); + + int[] tableIds = in.createIntArray(); + int metadataTypes = in.readInt(); + List<SignalingDataInfo> signalingDataInfoList = new java.util.ArrayList<>(); + in.readParcelableList(signalingDataInfoList, SignalingDataInfo.class.getClassLoader()); + + this.mTableIds = tableIds; + com.android.internal.util.AnnotationValidations.validate(NonNull.class, null, mTableIds); + this.mMetadataTypes = metadataTypes; + this.mSignalingDataInfoList = signalingDataInfoList; + com.android.internal.util.AnnotationValidations.validate( + NonNull.class, null, mSignalingDataInfoList); + } +} |